按照我的代码:
<div id="test">
<div>
<div class="find_me"></div>
</div>
</div>
我不想使用 querySelector 或 getElementsByClassName,如何为 id 'test' 中的每个元素创建一个 while 循环,直到找到具有类 'find_me' 的 div?
按照我的代码:
<div id="test">
<div>
<div class="find_me"></div>
</div>
</div>
我不想使用 querySelector 或 getElementsByClassName,如何为 id 'test' 中的每个元素创建一个 while 循环,直到找到具有类 'find_me' 的 div?
如果我理解正确
1)获取测试元素的孩子。(这里的变量是child
)
var child = document.getElementById('test').children;
2)迭代它们中的每一个,因为它还需要再次迭代我正在迭代它的孩子。(不知道为什么JS有这样的结构)(变量是children
)
var children = child[i].children;
最终代码:
var child = document.getElementById('test').children;
for (var i = 0; i < child.length; i++) {
var children = child[i].children;
for (var i = 0; i < children.length; i++) {
if (children[i].className == "find_me") {
alert("Yup, here I am");
}
}
}
我包括一个jsfiddle,以便您可以在控制台中检查迭代的原因。
希望你明白我的逻辑。
(我同意@MattBall)试试jQuery,这有诸如等之类的干净方法.filter(), .find()
,一旦你动手,你会爱上它。