如何从两个或多个DOMNode创建NodeList对象

时间:2016-03-13 11:47:34

标签: javascript dom dom-node

例如,我有两个DOMNode: let node1 = document.querySelector('#node-1'); let node2 = document.querySelector('#node-2');

如何将它们组合成NodeList对象?有一个简单的解决方案,如array.push(item)

3 个答案:

答案 0 :(得分:3)

您可以将两个节点添加到文档片段中:

var docFragment = document.createDocumentFragment();
docFragment.appendChild(node1);
docFragment.appendChild(node2);

如果你真的希望它们在NodeList中执行:

var list = docFragment.querySelectorAll('*');

这样做的缺点是,只要将节点附加到文档片段,就会将它们从实际文档中删除。

答案 1 :(得分:0)

var nList = document.querySelectorAll('[id^="node"]');

收集ID为“node”的所有节点。

var nList = document.querySelectorAll('[id^="node"]');
for (var i = 0; i < nList.length; i++) {
  var node = nList[i].id;
  console.log('Node: ' + node);
}
<div id="node-1">node-1</div>
<div id="node-2">node-2</div>
<div id="notnode-3">notnode-3</div>
<div id="check">Check the console (F12, then choose the 'console' tab)</div>

答案 2 :(得分:0)

将此作为Orr Siloni答案的补充:

如果我们不希望从DOM中删除该节点,则可以使用node.cloneNode()附加该节点的副本。