Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывести все картинки что есть на странице (https://javascript.ru/forum/misc/23473-vyvesti-vse-kartinki-chto-est-na-stranice.html)

ksa 26.11.2011 16:01

Цитата:

Сообщение от padonak
как использовать cloneNode

http://www.jstoolbox.com/skripty/dom...nie-elementov/

padonak 26.11.2011 22:31

var listImg = document.getElementsByTagName('img');
var div = document.getElementById('output');
for(var i=0; i<listImg.length; i++)
    div.appendChild(listImg[i].cloneNode(false));



Подскажите где тут ошибка, по тому что начинает цыклить и без конца выводить изображения в <div id="output">

рони 27.11.2011 05:41

padonak,
getElementsByTagName это "живая" коллекция элементов, которая обновляется при изменении html ... добавляйте клоны целиком а не по одному ... вариант ниже
<!DOCTYPE >
<html>
<head>
  <title></title>
</head>
<body>
<img src="http://javascript.ru/forum/images/smilies/nono.gif" border="1" alt="test" />
<img src="http://javascript.ru/forum/images/smilies/nono.gif" border="1" alt="test" />
<img src="http://javascript.ru/forum/images/smilies/nono.gif" border="1" alt="test" />
<div id="output" style="border: #FF0000 solid 2px"></div>
 <script type="text/javascript">
var listImg = document.getElementsByTagName('img');
var div = document.getElementById('output');
var f = document.createDocumentFragment();
for(var i=0; i<listImg.length; i++)
    f.appendChild(listImg[i].cloneNode(false));
div.appendChild(f)
</script>
</body>
</html>

irezvov 27.11.2011 17:40

Цитата:

Сообщение от padonak (Сообщение 139148)
var listImg = document.getElementsByTagName('img');
var div = document.getElementById('output');
for(var i=0; i<listImg.length; i++)
    div.appendChild(listImg[i].cloneNode(false));



Подскажите где тут ошибка, по тому что начинает цыклить и без конца выводить изображения в <div id="output">

var listImg = [].slice.call(document.getElementsByTagName('img'), 0);
var div = document.getElementById('output');
for(var i=0; i<listImg.length; i++)
    div.appendChild(listImg[i].cloneNode(false));

padonak 27.11.2011 23:20

спасибо


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