getElementsByClassName과 함께 Array.forEach 사용
document.getElementsByClassName( "myclass" ).forEach를 사용하여 DOM 요소에 대해 반복을 시도할 때, 하나 오류가 발생할 수 있습니다 "document.getElementsByClassName("myclass").forEach는 함수가 아닙니다." 이는 getElementsByClassName의 결과가 배열이 아니라 HTMLCollection이기 때문에 발생합니다.
이 문제를 해결하려면 forEach를 사용하기 전에 HTMLCollection을 배열로 변환해야 합니다. 이는 HTMLCollection을 this 값으로 사용하여 Array.prototype.forEach.call 메소드를 사용하여 수행할 수 있습니다.
var els = document.getElementsByClassName("myclass"); Array.prototype.forEach.call(els, function(el) { // Do stuff here console.log(el.tagName); });
또는 [].forEach.call을 사용할 수도 있습니다:
[].forEach.call(els, function (el) {...});
ES6에서는 Array.from 함수를 사용할 수 있습니다:
Array.from(els).forEach((el) => { // Do stuff here console.log(el.tagName); });
위 내용은 `document.getElementsByClassName().forEach`가 작동하지 않는 이유는 무엇이며 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!