我使用<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
浏览器中工作不正常。
答案 0 :(得分:0)
问题是document.getElementsByTagName
返回“实时”元素集合。您正在修改循环内部的DOM,并且底层的“实时”集合也在发生变化(请参阅MDN getElementsByTagName)。或者,使用两个循环来构建要添加到nodeList的元素数组,然后使用第二个循环将它们附加到nodeList。