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
;