Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   appendChild не присваивает класс div-ам (https://javascript.ru/forum/dom-window/48357-appendchild-ne-prisvaivaet-klass-div-am.html)

OlegALL 30.06.2014 22:26

appendChild не присваивает класс div-ам
 
Добрый вечер. Такой вопрос

Разметка:
<body>
<input id="newcarousel" type="button" value="Добавить карусель"></input>
</body>


При нажатии на кнопку срабатывает JS:
var div = document.createElement("div");
document.querySelector("body").appendChild(div);
document.querySelector("body div:last-child").classList.add("carousel");

после трёх нажатий кнопки результат такой:
<div class="carousel"></div>
<div></div>
<div></div>

Почему?

код на jsfiddle: http://jsfiddle.net/nQU86/

рони 30.06.2014 22:45

OlegALL,
потому что тама нето что тута ;)

рони 30.06.2014 22:47

OlegALL,
http://jsfiddle.net/nQU86/1/

Artem Narushevich 01.07.2014 18:38

У меня вопрос не по теме.
Несколько раз встречал подобную запись document.querySelector("body").
Скажите, почему именно так, а не просто document.body?

Sweet 01.07.2014 19:42

Цитата:

Сообщение от Artem Narushevich
Скажите, почему именно так, а не просто document.body?

А почему не
document.getElementsByTagName("body")[0]
? Просто кому как нравится.

Artem Narushevich 10.07.2014 13:36

Вот, нашел здесь же на сайте.
мы используем document.getElementsByTagName, вместо document.body, потому что это способ получения BODY работает во всех браузерах, когда документ еще не готов.
Не знал )

ruslan_mart 07.11.2014 06:39

OlegALL,
1. Зачем input закрывать?
2. Почему ты body получаешь через selector? Есть же более простые и правильные способы, document.body например.
3. Зачем ты созданный тобой div получаешь через селектор? У тебя же уже есть ссылка на него.

var div = document.createElement('div');
div.className = 'carousel';
document.body.appendChild(div);


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