var p = document.getElementById(e),
nodes = p.querySelectorAll('span');
for (var i=0; i<nodes.length; i++) {
node = nodes[i];
node.innerHTML = ' ';
}
如果我在console.log(p) 和console.log(nodes) 之后进行,我会看到更改影响了节点,但不影响p。为什么以及如何申请p?
如果我让nodes = p.childNodes;
一切正常。
那么,主要问题是,为什么它适用于childNodes
和不适用querySelectorAll
?
更新
最后,添加如下内容可以解决问题:
for (var k=0; k<childNodes.length; k++) {
for (var j=0; j<nodes.length; j++) {
if (childNodes[k].id === nodes[j].id) {
p.replaceChild(nodes[j],childNodes[k]);
}
}
}
哪里nodes = querySelectorAll
和childNodes = p.childNodes
;