【发布时间】:2015-08-24 19:21:52
【问题描述】:
我正在使用 DOMParser() 解析 HTML 字符串,并尝试使用 for 循环获取所有子节点。但是我不知道如何获取子节点的节点及其子节点等...
var str = "<div><p>paragraph<span>span</span></p></div>";
var doc = new DOMParser().parseFromString(str, 'text/html');
var childnodes = doc.body.childNodes;
for (var i = 0; i < childnodes.length; i++) {
console.log(childnodes[i]);
console.log(childnodes[i].childNodes);
console.log(childnodes[i].childNodes[i].childNodes);
}
这可以按我的意愿工作,它给出了div、p、text 和span,但是我如何使用一个获取所有孙子的 for 循环来完成这项工作?没有 jQuery?
Here's a fiddle 上面的代码。
【问题讨论】:
-
您可能需要为此使用递归。
-
doc.body.querySelectorAll('*')有什么理由不工作吗? -
@adeneo 不会给出文本节点吧?
-
@adeneo 那我就不能用了! :(
标签: javascript html children domparser