Javascript 尝试循环querySelectorAll中的元素时,elems是未定义的错误
我好像在某些代码中出错了。它的简化版本是:Javascript 尝试循环querySelectorAll中的元素时,elems是未定义的错误,javascript,Javascript,我好像在某些代码中出错了。它的简化版本是: var elems = document.querySelectorAll(".vat-info"); if (elems.length) { console.dir({ found: elems }); Object.keys(elems).forEach(function (key){ console.dir("X: " + key) var item
var elems = document.querySelectorAll(".vat-info");
if (elems.length) {
console.dir({ found: elems });
Object.keys(elems).forEach(function (key){
console.dir("X: " + key)
var item = elems[key];
console.log("got here");
});
}
我得到的错误是:
未捕获的TypeError:无法读取未定义的属性“0”
令人沮丧的是,我没有在JSFIDLE上看到这个错误!但我通常会在浏览器中看到它:
我不明白有什么错:/I我使用了以下语法:
elems.forEach(function (item,i){
....
});
但是,似乎有些浏览器不喜欢使用queryselectoral()
输出,因为它是Object()
而不是Array()
请尝试一下
var elems=document.querySelectorAll(“.vat信息”);
if(元素长度){
要素forEach(功能(键){
console.log(key.attributes);
log(key.className);
});
}
小提琴控制台中没有错误!!!您的屏幕截图中的错误看起来是类型错误:元素未定义,而不是未捕获类型错误:无法读取未定义的属性“0”。querySelectorAll的返回值类似于数组,但不是数组。然后数组上的对象键就没有任何意义了。如果希望querySelectorAll的返回值为数组,请执行以下操作:array.from(document.querySelectorAll(.vat info”);
querySelectorAll需要哪些信息?您正在执行Object.keys(elem),其中elem是数组。谢谢。我实际上已经尝试过:elems.forEach(function(item,I){
,但在某些浏览器中我遇到了一个错误