Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2014, 22:26
Аспирант
Отправить личное сообщение для OlegALL Посмотреть профиль Найти все сообщения от OlegALL
 
Регистрация: 23.01.2010
Сообщений: 90

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/
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2014, 22:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

OlegALL,
потому что тама нето что тута
Ответить с цитированием
  #3 (permalink)  
Старый 30.06.2014, 22:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

OlegALL,
http://jsfiddle.net/nQU86/1/
Ответить с цитированием
  #4 (permalink)  
Старый 01.07.2014, 18:38
Новичок на форуме
Отправить личное сообщение для Artem Narushevich Посмотреть профиль Найти все сообщения от Artem Narushevich
 
Регистрация: 02.08.2013
Сообщений: 4

У меня вопрос не по теме.
Несколько раз встречал подобную запись document.querySelector("body").
Скажите, почему именно так, а не просто document.body?
Ответить с цитированием
  #5 (permalink)  
Старый 01.07.2014, 19:42
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Artem Narushevich
Скажите, почему именно так, а не просто document.body?
А почему не
document.getElementsByTagName("body")[0]
? Просто кому как нравится.
Ответить с цитированием
  #6 (permalink)  
Старый 10.07.2014, 13:36
Новичок на форуме
Отправить личное сообщение для Artem Narushevich Посмотреть профиль Найти все сообщения от Artem Narushevich
 
Регистрация: 02.08.2013
Сообщений: 4

Вот, нашел здесь же на сайте.
мы используем document.getElementsByTagName, вместо document.body, потому что это способ получения BODY работает во всех браузерах, когда документ еще не готов.
Не знал )
Ответить с цитированием
  #7 (permalink)  
Старый 07.11.2014, 06:39
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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

var div = document.createElement('div');
div.className = 'carousel';
document.body.appendChild(div);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с добавлением элементов в DIV (appendChild) Metallic Events/DOM/Window 6 01.02.2014 21:44
Выбрать div с нужным классом из div, id которого меняется и поменять этот класс Boeing747 jQuery 5 05.10.2012 16:19
Не меняется класс div с помощью jQuery Mniako jQuery 7 08.10.2011 12:19
проблема с div И animate g00000dman jQuery 2 24.03.2011 23:34
Не работает AppendChild для div, причём только в IE _Kpot_ Internet Explorer 5 12.02.2009 10:55