Заключение всего содержимого в 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, время: 07:16. |