var alldivstamp = document.getElementsByClassName("divs");
for(var i = 0; i < array.length; i++){
if(array[i-1].getAttribute("data") > 1){
//error here = TypeError: array[(i - 1)] is undefined
}
}
错误输出:“类型错误:数组 [(i - 1)] 未定义”
for(var i = 0; i < array.length; i++){
if (typeof foo !== 'undefined') {
if(array[i-1].getAttribute("data") > 1){
//error here = TypeError: array[(i - 1)] is undefined
}
}
}
这并没有解决它
for(var i = 0; i < array.length; i++){
if (typeof foo !== 'undefined' && i < 1 && i > array.length-1) {
if(array[i-1].getAttribute("data") > 1){
//error here = TypeError: array[(i - 1)] is undefined
}
}
}
这里也有错误
undefined value in if statement breaks for loop
这是数据结构
<div class="divs"></div>
<div class="divs"></div>
<div class="divs"></div>
.....
解决方案:
for(var i = 0; i < array.length; i++){
if (i > 0) {
if(array(i-1).getAttribute("data") > 1){
//do ...
}
}if(i == 0){
//do ...
}
}
成功!
错误:(类型错误:“x”是(不是)“y”)
TypeError: "x" is (not) "y"
Examples:
TypeError: "x" is undefined
TypeError: "x" is null
TypeError: "undefined" is not an object
TypeError: "x" is not an object or null
TypeError: "x" is not a symbol
最佳答案
根据 document.getElementsByClassName
,您将获得一个类似带有元素的对象的数组。
您可以使用索引访问项目
array[i]
对于属性,您可以使用点表示法,例如
array[i].foo
或括号表示法
array[i]['foo']
或者像
getAttribute
这样的方法。array[i].getAttribute('data')
一个有效的循环,可能是这个
array = document.getElementsByClassName("divs");
for (var i = 0; i < array.length; i++){
if (array[i].getAttribute('data')) { // check for truthyness
// do something
}
}
关于JAVASCRIPT : for loop array undefined -1 index,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41320052/