Заключение всего содержимого в DIV на JS
Добрый вечер! Мне нужно с помощью Java Script заключить все видимые элементы в элемент DIV. Пытаюсь сделать так:
function includeAllInDiv_ff() { var div=document.createElement('div'); div.style.position="absolute"; div.id="asdf"; var masChilds = document.body.childNodes; document.body.appendChild(div); // alert(masChilds.length); // for (var i =0;i<masChilds.length;i++) { if(div!=masChilds[i]){ div.appendChild(masChilds[i]); } }; }; но не выходит - в фаердебаге видел, что добавилось внутрь только 3 элемента из 21 =( не могу понять почему. Помогите мне пожалуйста с этим (нужно для IE). |
Да, забыл добавить - нужно без использования innerHTML =)
|
while (document.body.childNodes.length>1) div.appendChild(document.body.firstChild); |
ZoNT,
Спасибо, заработало, но интересно, почему же мой код не работа, вроде бы всё верно было.. |
Смотри: в боди 20 тэгов, ты делаешь цикл на 20 итераций:
1)i=1, первый тэг переносишь в див и УДАЛЯЕШЬ его из боди. В боди становится 19 тэгов и второй тэг становится первым!!! 2)i=2, второй (бывший третий) тэг переносишь в див и УДАЛЯЕШЬ его из боди. В боди становится 18 тэгов и третий тэг (бывший четвёртый) становится вторым!!! ... и т.д. |
Да, действительно, теперь понятно)
|
Часовой пояс GMT +3, время: 09:13. |