Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Заключение всего содержимого в DIV на JS (https://javascript.ru/forum/misc/1892-zaklyuchenie-vsego-soderzhimogo-v-div-na-js.html)

SunnyDay 01.10.2008 17:32

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

SunnyDay 01.10.2008 18:00

Да, забыл добавить - нужно без использования innerHTML =)

ZoNT 01.10.2008 18:18

while (document.body.childNodes.length>1) div.appendChild(document.body.firstChild);

SunnyDay 02.10.2008 10:23

ZoNT,
Спасибо, заработало, но интересно, почему же мой код не работа, вроде бы всё верно было..

ZoNT 02.10.2008 11:28

Смотри: в боди 20 тэгов, ты делаешь цикл на 20 итераций:
1)i=1, первый тэг переносишь в див и УДАЛЯЕШЬ его из боди. В боди становится 19 тэгов и второй тэг становится первым!!!
2)i=2, второй (бывший третий) тэг переносишь в див и УДАЛЯЕШЬ его из боди. В боди становится 18 тэгов и третий тэг (бывший четвёртый) становится вторым!!!
... и т.д.

SunnyDay 02.10.2008 11:36

Да, действительно, теперь понятно)


Часовой пояс GMT +3, время: 12:03.