Не могу добраться до 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, время: 02:50. |