Разница 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 второй день. Спасибо. |
в одно из них может попасть 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> |
Исчерпывающий ответ. Спасибо.
|
Часовой пояс GMT +3, время: 09:23. |