2014-02-15 3 views
1

У меня есть <p> теги, которые существуют на странице, используя document.getElementsByTagName('p').
Что я хочу, добавляет эти теги в nodeList, например, как document.querySelectorAll.Как создать NodeList?

Например:
Предположим, если мы имеем 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

Проверьте [NodeList.js] (https://github.com/eorroe/NodeList.js) –

ответ

0

Проблема document.getElementsByTagName возвращает «живую» коллекцию элементов. Вы изменяете DOM внутри своего цикла, и также меняется базовая «живая» коллекция (см. MDN getElementsByTagName). В качестве альтернативы, используйте две петли для построения массива элементов, которые должны быть добавлены в ваш nodeList, а второй - для добавления их в nodeList.

Смежные вопросы