저는 getElementsByClassName()과 비슷한 작업을 수행하는 간단한 함수를 만들었습니다. DOM의 모든 노드를 통과하여 일치하는 클래스가있는 노드를 배열로 푸시해야합니다. 그러나 Crockford의 walk_the_DOM 메서드와 비슷한 것을 사용하려고 시도했지만, 내 작업이 작동하지 않습니다. 이 함수는 첫 번째 DOM 수준에서 노드를 검색하지만 더 깊게 가지 않습니다. 누군가가 나에게 무슨 문제가 있는지에 대한 힌트를 줄 수 있을까요? 여기 코드는 다음과 같습니다DOM 걷기 기능이 작동하지 않습니다.
var getNodesWithClassname = function(classname) {
var a = document.body;
var ar = [];
var getNodes = function(obj, classname) {
if (obj.hasChildNodes()) {
var child = obj.firstElementChild;
while (child) {
if (child.className === classname) {
ar.push(child)
}
child = child.nextElementSibling;
}
}
}
getNodes(a, classname);
return ar;
};
어떻게 *이 작동하지 않습니다 *? – Joseph
어디에서나 재귀가 발생하지 않으므로 코드가 한 수준 만 이동하는 큰 부분을 차지합니다. – Brian