Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.04.2013, 13:32
Новичок на форуме
Отправить личное сообщение для Siter Посмотреть профиль Найти все сообщения от Siter
 
Регистрация: 06.04.2013
Сообщений: 5

Разница elem[0] и elem.firstChild
Добрый день.

Расскажите мне пожалуйста о разнице

<!DOCTYPE HTML>
<html>
<head><meta charset="utf-8"></head>
<body>
<div>
///
</div>
<p>Привет<b>Как дела?</b>test</p>
<a href=''>Привет</a>
<script>

	var parent  = document.body.children[1].children[0];

	var newb = document.createElement('b');
	newb.innerHTML = ('дополнение');
	
	parent.insertBefore(newb,parent.firstChild);
</script>

</body>
</html>


и

<!DOCTYPE HTML>
<html>
<head><meta charset="utf-8"></head>
<body>
<div>
///
</div>
<p>Привет<b>Как дела?</b>test</p>
<a href=''>Привет</a>
<script>

	var parent  = document.body.children[1].children[0];

	var newb = document.createElement('b');
	newb.innerHTML = ('дополнение');
	
	parent.insertBefore(newb,parent[0]);
</script>

</body>
</html>


Одно вставляет "дополнение" перед "Как дела", а другое после.
Не понимаю, почему так происходит.

И буду рад услышать совет, как упростить это:
var parent  = document.body.children[1].children[0]

, ибо учу js второй день.

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 06.04.2013, 13:39
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

в одно из них может попасть HTML комментарий, или текстовый элемент, которые тоже являются элементами, и тогда firstChild не будет таким же, что и children

<body>
<!-- комментарий -->
<b>элемент</b>
</body>

<script>
    alert( 'firstChild: ' + document.body.firstChild + '\n' + 'children[0]' + document.body.children[0]  );
</script>


<body>
просто текст
<b>элемент</b>
</body>

<script>
    alert( 'firstChild: ' + document.body.firstChild + '\n' + 'children[0]' + document.body.children[0]  );
</script>

Последний раз редактировалось melky, 06.04.2013 в 13:41.
Ответить с цитированием
  #3 (permalink)  
Старый 06.04.2013, 14:33
Новичок на форуме
Отправить личное сообщение для Siter Посмотреть профиль Найти все сообщения от Siter
 
Регистрация: 06.04.2013
Сообщений: 5

Исчерпывающий ответ. Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разница между my_id и document.getElementById('my_id') js_explorer Events/DOM/Window 6 03.04.2013 17:53
Какая разница между определениями функций Nadine Общие вопросы Javascript 1 07.03.2012 16:07
Скобки после имени функции. В чем разница, если они есть и если их нет? jsuse Общие вопросы Javascript 2 19.11.2011 16:11
Разница работы кода c ajax и просто текстом? 0931454574 AJAX и COMET 2 07.04.2011 17:31
Разница между frameset & iframes morg4n Events/DOM/Window 2 14.08.2010 23:37