Не могу добраться до HTMLCollection
Привет.
d.forEach(function (ul, k) { console.log(ul.children) }); В браузере в консоле HTMLCollection { 0: li.disabled, 1: li.is_set_access.disabled.hide, length: 2 } HTMLCollection { 0: li.disabled, 1: li.disabled, 2: li.disabled, 3: li.disabled, length: 4 } .... Если открыть HTMLCollection { 0: li.disabled, 1: li.is_set_access.disabled.hide , length: 2 } 0: <li class="disabled" bind-id="174" data-name="Меню" data-widget-id="3" data-bp_id="181"> 1: <li class="is_set_access disabled hide" bind-id="182" data-name="HTML блок" data-widget-id="14" data-bp_id="189"> length: 2 <prototype>: HTMLCollectionPrototype { item: item(), namedItem: namedItem(), length: Getter, … } Мне нужно получать атрибуты li. Никак не могу. |
ureech,
что мешает сделать цикл по ul.children? |
ureech,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> </head> <body> <ul> <li class="disabled" bind-id="174" data-name="Меню" data-widget-id="3" data-bp_id="181"></li> <li class="is_set_access disabled hide" bind-id="182" data-name="HTML блок" data-widget-id="14" data-bp_id="189"></li> </ul> <script> document.querySelectorAll('ul').forEach(function(ul, k) { for (let li of ul.children) console.log(li.dataset.name); }); </script> </body> </html> |
Да делал. И цикл и перецикл. И пытался Array.from() применить. Нихрена(.
У меня нет html. Он есть, но очень глубокое вложенность. И вот я добрался до сюда через 4 цикла. |
Вот у меня предыдущий цикл. d
Array(7) [ ul#pos-pos_92.position.ui-sortable, ul#pos-pos_90.position.ui-sortable, ul#pos-pos_91.position.ui-sortable, ul#pos-pos_96.position.ui-sortable, ul#pos-pos_95.position.ui-sortable, ul#pos-pos_93.position.ui-sortable, ul#pos-pos_94.position.ui-sortable ] 0: <ul id="pos-pos_92" class="position ui-sortable" rel="pos_92"> 1: <ul id="pos-pos_90" class="position ui-sortable" rel="pos_90"> 2: <ul id="pos-pos_91" class="position ui-sortable" rel="pos_91"> 3: <ul id="pos-pos_96" class="position ui-sortable" rel="pos_96"> 4: <ul id="pos-pos_95" class="position ui-sortable" rel="pos_95"> 5: <ul id="pos-pos_93" class="position ui-sortable" rel="pos_93"> 6: <ul id="pos-pos_94" class="position ui-sortable" rel="pos_94"> length: 7 Там уже в ul.children эта коллекция. |
И никак не добраться, то ошибка, undefined, то пустой массив
|
Если так, как вы написали, то у меня
var ul = document.querySelectorAll('ul'); ul.forEach(function (a, k) { if($(a).attr('rel')){ // for(let li of a.children){ console.log(a.children); // } } }); HTMLCollection { length: 0 } 0: <li class="disabled" bind-id="174" data-name="Меню" data-widget-id="3" data-bp_id="181"> 1: <li class="is_set_access disabled hide" bind-id="182" data-name="HTML блок" data-widget-id="14" data-bp_id="189"> length: 2 <prototype>: HTMLCollectionPrototype { item: item(), namedItem: namedItem(), length: Getter, … } custom.js:30:25 HTMLCollection { length: 0 } custom.js:30:25 HTMLCollection { length: 0 } ... |
И при переборе уже ничего...
|
На ум пришло следующее. Скорее всего этот DOM формирует тоже js и мой код существует до "его" кода. Попробую в эту сторону покапать.
|
Часовой пояс GMT +3, время: 11:09. |