我创建了一个简单的函数来执行类似于 getElementsByClassName() 的任务。它应该遍历 DOM 中的每个节点并将具有匹配类的节点推送到数组中。我尝试使用类似于 Crockford 的 walk_the_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;
};