我该如何创建NodeList?

时间:2014-02-15 12:54:23

标签: javascript nodelist

我使用<p>获得了页面中存在的document.getElementsByTagName('p')个标记 我想要的是,在nodeList中添加这些标签,就像做document.querySelectorAll一样。

例如:
假设我们在页面中存在4个<p>标记。 我想将4个标签添加为nodeList。

我制作了以下代码:

var elem = null, nodList = document.createDocumentFragment(), i;
elem = document.getElementsByTagName('p');
for (i = 0; i < elem.length; i++){
    nodList.appendChild(elem[i]);
}

但不幸的是,在IE 6 ,7浏览器中工作不正常。

1 个答案:

答案 0 :(得分:0)

问题是document.getElementsByTagName返回“实时”元素集合。您正在修改循环内部的DOM,并且底层的“实时”集合也在发生变化(请参阅MDN getElementsByTagName)。或者,使用两个循环来构建要添加到nodeList的元素数组,然后使用第二个循环将它们附加到nodeList。