2014-01-07 6 views
1

я создал NodeList с nodeList = document.createDocumentFragment().childNodes;,Nodelist изменения не влияют на длину

тогда я поставил nodeList[0] = document.getElementById("foo");

все работает отлично, единственная проблема в том, что nodeList.length остается 0

я есть Allready попытался изменить массив на NodeList. Также я попытался использовать фрагмент, добавленные дочерние элементы и впоследствии изменил их и вернул дочерние узлы.

Я не могу просто добавить оригинальных детей, потому что они удаляются где-то еще.

что мне не хватает?

да я знаю, я мог бы просто использовать массив, но я хочу, чтобы NodeList элемент

+0

«Что мне не хватает?» - Невозможно достичь этого, кроме тех, о которых вы уже упоминали, чего не хотите. – bfavaretto

+0

Это очень грустно – frieder

+0

... вы можете клонировать элемент и добавлять к фрагменту, а не перемещать его туда. это приемлемо? – bfavaretto

ответ

1

Я не уверен, как дубликат работает так я добавлю ответ здесь

из документации https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment?redirectlocale=en-US&redirectslug=DOM%2FDocumentFragment DocumentFragment имеет ребенок свойство, как прочтенные только так вы не можете написать ему, вместо этого используйте appendChild();

var nodeList = document.createDocumentFragment(); 
nodeList.appendChild(document.getElementById("foo")) 
Смежные вопросы