Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Дочерние элементы документа (https://javascript.ru/forum/events/63327-dochernie-ehlementy-dokumenta.html)

Conus 31.05.2016 22:12

Дочерние элементы документа
 
имею такую структуру



выбираю все дочерние элементы


for(var i in  rang.startContainer.parentNode.childNodes ) 
                {
                     value.select += i + ' - ' + rang.startContainer.parentNode.childNodes[i] + '\n'
                }

                 alert(value.select)
                  value.select = '';

результат

undefined0 - https://www.zzz.com.ua/ // И ЧТО СИЕ ОЗНАЧАЕТ одной строкой и без тега?
1 - [object Text]
2 - [object HTMLBRElement]
3 - [object HTMLBRElement]
length - 4
item - function item() { [native code] }

почему нет элемента
<a rel="nofollow" href="https://www.zzz.com.ua/" title="бесплатный хостинг">бесплатный хостинг</a>

Botik21 01.06.2016 00:41

Это HTMLAnchorElement так преобразуется в строку, это и есть ваш тег <a>
https://developer.mozilla.org/ru/doc...Utils/toString

Conus 01.06.2016 06:43

А как его читать как объект?
и почему он преобразуется -
я так понимаю в результате цикла выполняется последний элемент объекта undefined и сами объекты уже не один и тот же поэтому и выскакивает undefined

сама работа с объектом капсулируется по типам или структуре

Botik21 01.06.2016 10:51

undefined вы получаете потому, что вы делаете конкатенацию с не существующим свойством value.select, которая равна undefined
В строку она преобразуется потому, что вы делаете конкатенацию строк, и для этого JS преобразует объект в строку вызывая метод toString().
Не соединяйте со строкой – получите объект.


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