Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Есть вопрос по parentElem.appendChild(elem) (https://javascript.ru/forum/events/66907-est-vopros-po-parentelem-appendchild-elem.html)

ArtemBielykh 17.01.2017 11:42

Есть вопрос по parentElem.appendChild(elem)
 
Итак, есть вот такой код: https://jsfiddle.net/uee5q07g/

Создаю новый элемент и добавляю в него содержимое:

var newSpan = document.createElement('span');
newSpan.innerHTML = '[ открыть ]';

Собираю все нужные мне элементы:
var elem = document.getElementsByClassName('heading');

перебираю их и добавляю новый элемент в в конец дочерних элементов
elem[i].appendChild(newSpan);

Результат Вы видите!
"открыть" появляется почему-то в последнем элементе, хотя console.log показывает совсем другое. Что я делаю не правильно???

Спасибо!

destus 17.01.2017 11:47

ArtemBielykh,
elem[i].appendChild(newSpan.cloneNode(true));

ksa 17.01.2017 11:47

Цитата:

Сообщение от ArtemBielykh
"открыть" появляется почему-то в последнем элементе

Так и должно быть. :D
Если тебе нужно много "открыть" - их нужно делать в цикле для каждого элемента. ;)

Dilettante_Pro 17.01.2017 11:49

ArtemBielykh,
Дело в том, что вы создали один элемент, и appendChild каждый раз размещает именно его в указанном месте, забирая с прежнего.
Смотрите https://learn.javascript.ru/modifyin...ов-clonenode

рони 17.01.2017 11:50

ArtemBielykh,
вы создали один элемент, и таскали его разным местам, вместо создания нескольких
или цикл выше в строку 2 из 6 перенести, либо добавлять клон в строке 7
elem[i].appendChild(newSpan.cloneNode(true));

рони 17.01.2017 11:50

:lol:

destus,
ksa,
Dilettante_Pro,
рони,

ArtemBielykh 17.01.2017 11:55

Цитата:

Сообщение от destus (Сообщение 441077)
ArtemBielykh,
elem[i].appendChild(newSpan.cloneNode(true));

Спасибо!

ksa 17.01.2017 13:30

рони, я второй нах! :lol:

Dilettante_Pro 17.01.2017 14:22

ksa,
Странно, что laimas и Rise не подтянулись:blink:

ksa 17.01.2017 15:09

Dilettante_Pro, мы доминируем. :victory:


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