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/

10-13 06:19