У меня есть некоторые элементы в моем HTML с классом node-item
, я получаю к ним доступ в моем компоненте, используя:
let nodeItems = document.getElementsByClassName('node-item');
и когда я регистрирую nodeItems
, он дает мне HTMLCollection[]
с длиной 4.
Я пробовал много способов, но все еще не могу повторить nodeItems
:
1- первая попытка:
let bar = [].slice.call(nodeItems);
for (var g of bar){
console.log(g); //gives me nothing
}
2-секундная попытка:
for(let c of <any>nodeItems) {
console.log(c); //gives me nothing
}
И я пробовал итерацию массива и итерацию объекта, но все равно undefined
или error
. также пробовал:
let nodeItems = document.querySelector(selectors);
Но те же проблемы.
Array.from()
будет чище, чем[].slice.call()
). Вы уверены, что коллекция содержит элементы? Помните, что это список активных узлов. Пожалуйста, сделайтеconsole.log(nodeItems.length)
. - person Bergi   schedule 21.04.2018nodeItems
, и он дает мне полную HTMLCollection, но когда регистрирую длину, он дает мне 0. - person Fateme Fazli   schedule 21.04.2018for of
в итераторы или в подсчет индекса массива, он должен работать. Если регистрация длины дает0
, согласно комментарию OPs, то проблема заключается в использовании DOM в неподходящее время. Не могли бы вы снова закрыть его? - person Bergi   schedule 21.04.2018for..of
, потому что он компилируется вfor
, но будет ошибка компиляции (‹any› nodeItems - уродливый обходной путь для этого). Вы можете перечислить отмеченных вами обманщиков? Я не ожидал, что его сразу откроют. - person Estus Flask   schedule 21.04.2018console.log
путанице с видоизмененными массивами - person Bergi   schedule 21.04.2018