Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 代码检查-if-else函数_Javascript_If Statement - Fatal编程技术网

Javascript 代码检查-if-else函数

Javascript 代码检查-if-else函数,javascript,if-statement,Javascript,If Statement,我一生都无法理解为什么我会犯这样的错误: “类型错误:eCurVar未定义”。请检查下面的代码 var aBBTemplates = document.getElementsByClassName ("cBBTemplates"); var i = 2; while (i < aBBTemplates.length) { var eCurVar = aBBTemplates[i]; if (eCurVar === e.targ

我一生都无法理解为什么我会犯这样的错误:

“类型错误:eCurVar未定义”。请检查下面的代码

    var aBBTemplates = document.getElementsByClassName ("cBBTemplates");
    var i = 2;
    while (i < aBBTemplates.length)
    {
        var eCurVar = aBBTemplates[i];
        if (eCurVar === e.target)
        {
            eCurVar.style.zIndex = 3;
     // type error: eCurVar is undefined on the following line. 
        }   else if (eCurVar.style.zIndex === 3)    {
            console.log (eCurVar);
            eCurVar.style.zIndex = 3-1;
        }   else
        {
            console.log (eCurVar)
            eCurVar.style.zIndex = i;
        }
        i--;
    }
var aBBTemplates=document.getElementsByClassName(“cBBTemplates”);
var i=2;
而(i
在第二种情况下
aBBTemplates[i]
可能返回
null
在第二种情况下
aBBTemplates[i]
可能返回
null

在每次迭代后
i
减少一个单位。。。经过三次迭代,它变成负值;所以你读了aBBTemplates[-1]
你得到了
未定义的

当您无法理解很少的
控制台.log发生了什么时,最好的办法是添加一个
调试器说明,然后打开devtool(通常按F12)

至于您的问题,您可以通过在
i
上添加检查来解决:

while (i < aBBTemplates.length && i >= 0) {
}
while(i=0){
}

每次迭代后,
i
递减一个单位。。。经过三次迭代,它变成负值;所以你读了aBBTemplates[-1]
你得到了
未定义的

当您无法理解很少的
控制台.log发生了什么时,最好的办法是添加一个
调试器说明,然后打开devtool(通常按F12)

至于您的问题,您可以通过在
i
上添加检查来解决:

while (i < aBBTemplates.length && i >= 0) {
}
while(i=0){
}

i
等于2开始。让我们假设
aBBTemplates[2]
返回一些有意义的内容。你用它做点什么,它们就会减少
i
。让我们假设aBBTemplates[1]
是有意义的


继续,迟早
i
会变成-1,这在阅读
aBBTemplates[-1]
时肯定是没有意义的,你从
i
开始时等于2。让我们假设
aBBTemplates[2]
返回一些有意义的内容。你用它做点什么,它们就会减少
i
。让我们假设aBBTemplates[1]
是有意义的


如果继续,那么
i
迟早会变成-1,当将
aBBTemplates[-1]

读入if函数并检查eCurrVar是否也为空时,这肯定没有意义

if (eCurVar != null && eCurVar === e.target){
// your code
} else {
// if ecurvar == null or ecurvar != e.targer
}
同时检查您的
i
是否为正数,因为数组不包含具有负索引的项:

while(i >= 0 && i < aBBTemplates.length)
while(i>=0&&i
进入if函数检查eCurrVar是否也为空

if (eCurVar != null && eCurVar === e.target){
// your code
} else {
// if ecurvar == null or ecurvar != e.targer
}
同时检查您的
i
是否为正数,因为数组不包含具有负索引的项:

while(i >= 0 && i < aBBTemplates.length)
while(i>=0&&i
你是在暗示GetElementsByCassName返回一个包含null的数组吗?我是在暗示
aBBTemplates[I]
,即索引
I
处的数组项,计算结果为
null
@dystroy如果你阅读OP的代码,你会看到他在*递减*
I
,在某个时候它将是
-1
。而且
abbmetplates[-1]
很可能是
null
。无论如何,谢谢你的否决票。我已经读过了,这就是为什么我对布鲁的答案投了赞成票,这是第一个答案,它带来的不仅仅是重复错误信息。说真的,如果你说的不止这些,我会建议你发表评论而不是回答…你是在暗示GetElementsByCassName返回一个包含null的数组吗?我是在暗示
aBBTemplates[I]
,即索引
I
处的数组项,如果你阅读OP的代码,它的计算结果是
null
@dystroy,你会看到他在*递减*
i
,在某个点上它将是
-1
。而且
abbmetplates[-1]
很可能是
null
。无论如何,谢谢你的否决票。我已经读过了,这就是为什么我对布鲁的答案投了赞成票,这是第一个答案,它带来的不仅仅是重复错误信息。说真的,如果你说的不止这些,我会建议你发表评论而不是回答…谢谢,这很有道理。谢谢,这很有道理。