removeNode() ?> ... > function nodeList2DocFragment(nList) { > .var newDocFragment = document.createDocumentFragment(); > .for (var i in nList) newDocFragment.appendChild(nList.item(i)); > .return newDocFragment; > }
Сорри, опять скопировал из первой, глючной версии :-( Тут дело в том, что nList - объект с двумя свойствами - функция item() и length. Следовательно - не годиться для того, чтобы пробежаться по всеми элементами. for (i=0;i<?.length;i++) тоже не годиться - при appendChild элементы перемещаются, а не копируются (виртуально - тот-же документ). Поэтому следует писать такой цикл:
while (nList.length) newDocFragment.appendChild(nList.item(0));
> В Mozile ... работает так: пропадает третья нода куда-то. И бордер капут. > > Не, они стараются, кто спорит. Но я бы на их месте не торопился бы 1.0 выпускать...
Ошибка не в Mozilla и не в DOM - моя ошибка, за что и прошу прощения.
(заодно стер всех старых и глючных версий ;-) |