getElementsByClassName은 배열이 아닌 HTMLCollection을 반환합니다.
JavaScript에서 document.getElementsByClassName 메서드는 지정된 항목과 일치하는 DOM 요소 컬렉션을 반환합니다. 수업 이름. 그러나 이 컬렉션은 배열이 아니라 HTMLCollection입니다.
최신 브라우저(Firefox 3 이상)에서는 this를 설정하여 Array.forEach 메서드를 HTMLCollection과 함께 사용할 수 있습니다. HTMLCollection에 대한 forEach 함수의 값입니다. 방법은 다음과 같습니다.
var els = document.getElementsByClassName("myclass"); Array.prototype.forEach.call(els, function(el) { // Do something with the element }); // Or, in ES6+ [].forEach.call(els, (el) => { // Do something with the element });
ES6를 사용하는 보다 현대적인 접근 방식은 Array.from을 사용하여 HTMLCollection을 실제 배열로 변환하는 것입니다.
Array.from(els).forEach((el) => { // Do something with the element });
이 값을 설정하여 또는 Array.from을 사용하면 마치 배열인 것처럼 forEach 메서드를 사용하여 HTMLCollection을 반복할 수 있습니다. Internet Explorer 8 이하와 같은 이전 브라우저는 이 접근 방식을 지원하지 않으며 HTMLCollection 대신 NodeList를 반환합니다.
위 내용은 `getElementsByClassName`이 JavaScript에서 배열을 반환하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!