documentFragment
Это понятно: (скриптик расставляет li в ul задом наперед)
<ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> <script> var myUl = document.getElementsByTagName("ul")[0]; var temp = []; for (var myLi = myUl.lastChild; myLi != null; myLi = myLi.previousSibling ) temp.push(myLi); for(i = 0; i< temp.length; i++) myUl.appendChild(temp[i]); //Когда в документ с помощью appendChild вставляется уже существующий элемент //он автоматически удаляется из текущей позиции. </script> И это тоже понятно: <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> <script> var fragment = document.createDocumentFragment(); var myUl = document.getElementsByTagName("ul")[0]; while(myUl.lastChild) fragment.appendChild(myUl.lastChild); myUl.appendChild(fragment); </script> Почему так не работает?: <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> <script> var fragment = document.createDocumentFragment(); var myUl = document.getElementsByTagName("ul")[0]; for (var k = myUl.lastChild; k != null; k = k.previousSibling) fragment.appendChild(k); </script> может это происходит из-за того, что элемент удаляется из текущей позиции? => т.е после первого прохода цикла присоединяем k в fragment ( с помощью appendChild) => когда начинаем искать его соседа - (k = k.previousSibling) то уже ищем его в fragment? |
Цитата:
Цитата:
|
Цитата:
var myUl = document.getElementsByTagName("ul")[0]; var children = myUl.childNodes; for (var i = 0; i< children.length; i++) { myUl.insertBefore(children[i], children[0]); } </script> |
Только i лучше от 1.
|
Часовой пояс GMT +3, время: 00:10. |