我有这个 DOM 树:
<li>
data ....
<br>
data ...
<img ... />
<br>
<script> ... </script>
<span> data ... </span>
</li>
我如何循环遍历位于 li 本身和 script 元素之间的上述 li 元素的子元素,即 script 和 span 元素不在循环中...... 提前致谢!!
注意:我不想使用 JQuery,因为我的应用程序正在使用 Protoype,如果我同时使用它们会与 JQuery 冲突,如果有使用 Prototype 的快速解决方案,我将不胜感激。
最佳答案
这样的事情对你有用吗?
var child = liElement.firstChild;
while(child){
if(child.nodeName.toLowerCase() == 'script'){
break
}
//do your stuff here
child = child.nextSibling;
}
请注意,如果您的示例中的“数据”是字符串,那么它们将作为文本节点的实例存在于子层次结构中。如果你需要对这些东西做特殊处理,你会想要做一个检查,比如
switch(child.nodeType){
case 3:
//text Node
break;
case 1:
//Element node
break;
default:
//break;
}
checkout https://developer.mozilla.org/en/nodeType更多节点类型
关于javascript - 如何遍历某些特定的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5165913/