Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.03.2023, 18:35
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Не могу добраться до 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. Никак не могу.
Ответить с цитированием
  #2 (permalink)  
Старый 29.03.2023, 18:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

ureech,
что мешает сделать цикл по ul.children?
Ответить с цитированием
  #3 (permalink)  
Старый 29.03.2023, 18:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

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>
Ответить с цитированием
  #4 (permalink)  
Старый 29.03.2023, 19:13
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Да делал. И цикл и перецикл. И пытался Array.from() применить. Нихрена(.
У меня нет html. Он есть, но очень глубокое вложенность. И вот я добрался до сюда через 4 цикла.
Ответить с цитированием
  #5 (permalink)  
Старый 29.03.2023, 19:31
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Вот у меня предыдущий цикл. 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 эта коллекция.
Ответить с цитированием
  #6 (permalink)  
Старый 29.03.2023, 19:32
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

И никак не добраться, то ошибка, undefined, то пустой массив
Ответить с цитированием
  #7 (permalink)  
Старый 29.03.2023, 19:49
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Если так, как вы написали, то у меня
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 }
...
Ответить с цитированием
  #8 (permalink)  
Старый 29.03.2023, 19:50
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

И при переборе уже ничего...
Ответить с цитированием
  #9 (permalink)  
Старый 29.03.2023, 19:54
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

На ум пришло следующее. Скорее всего этот DOM формирует тоже js и мой код существует до "его" кода. Попробую в эту сторону покапать.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX Запрос - не могу добраться до значения переменной вне функции thc2000 AJAX и COMET 6 13.07.2018 17:47
Не могу выучить javascript. usertest Оффтопик 17 20.03.2016 08:33
Не могу добраться до нужного элемента JSON idav Angular.js 0 29.06.2015 22:29
Конструктор, не могу получить доступ к свойству класса voodoo_dn Общие вопросы Javascript 5 17.12.2014 18:07
не могу связать ссылку HTML Шынгыс (X)HTML/CSS 1 14.07.2014 13:52