Javascript, просмотр " object nodelist"
выполнение alert () На одной из моих переменных дает мне этот результат
[object NodeList]
Как я могу увидеть все значения в этом?
Примечание; я на Firefox и не знаю, как использовать chromebug, поэтому он не установлен.
3 ответов
вы можете перебирать значения в NodeList
так же, как и массив:
for (var index = 0; index < nodeList.length; index++) {
alert(nodeList[index]);
}
вот хороший ресурс с более подробной информацией:http://reference.sitepoint.com/javascript/NodeList
лучшая альтернатива-не использовать alert, так как это отобразит toString () объекта. Использование консоли.вход из FF и Chrome даст вам хороший расширяемый объект, который вы можете нажать, чтобы сверлить его
и если вам действительно нужна сериализация, вы можете использовать outerHTML
// Firefox doesn't support outerHTML on nodes, so here's a method that does it
// http://stackoverflow.com/questions/1700870/how-do-i-do-outerhtml-in-firefox
function outerHTML(node){
return node.outerHTML || new XMLSerializer().serializeToString(node);
}
for (var index = 0; index < nodeList.length; index++) {
alert(outerHTML( nodeList[i] ) );
}
В настоящее время я бы определенно использовал следующее:
Chrome, Firefox 3.5+, IE8+
var elements = document.querySelectorAll('a');
for (var i = 0, element; (element = elements[i]); i++) {
console.log(element);
}
IE11+, Firefox 24+, Chrome 30+ (с включенными экспериментами)
let elements = document.querySelectorAll('a');
for (let i = 0, element; (element = elements[i]); i++) {
console.log(element);
}
" element = elements[i] "предпочтительнее" elements.длина " с:
списки узлов часто реализуются как итераторы узлов с фильтром. Этот означает, что получение свойства length равно O (n) и повторение список путем повторной проверки длины будет O (n^2).
В отличие от доступа к массиву, который, насколько я помню, O (1).
Подробнее: