gpt4 book ai didi

javascript - 使用递归实现 getElementsByClassName

转载 作者:行者123 更新时间:2023-11-28 19:20:20 26 4
gpt4 key购买 nike

我在 getElementsByClassName 中创建了一个函数,用于测试当前节点以检查它是否与 className 匹配,然后递归地测试当前节点的子节点。

对我来说,这在逻辑上是有意义的,但我不确定为什么结果不会产生与 getElementsByClassName 相同的结果。我尝试实现一个 for 循环来检查当前级别中的每个节点,但这似乎也不起作用。我需要在第一个 if 语句中调整哪些内容才能使此代码正常工作?

function getElementsByClassName (className) {
var nodeList = [];
function test(node) {
if (node.classList === className) {
nodeList.push(node.classList[count]);
}
for (var index = 0; index < node.childNodes.length; index++) {
test(node.childNodes[index]);
}
}
test(document.body)
return nodeList;
};

最佳答案

在检查 className 时,您正在做一些小事情。

if (node.classList && node.classList.contains(className)) {
nodeList.push(node);
}

http://jsfiddle.net/us5xjv66/8/

关于javascript - 使用递归实现 getElementsByClassName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29013969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com