Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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语句后停止_Javascript_If Statement_For Loop - Fatal编程技术网

JavaScript函数在某个if语句后停止

JavaScript函数在某个if语句后停止,javascript,if-statement,for-loop,Javascript,If Statement,For Loop,我最近尝试重新使用一个(正在工作!)javascript函数,并检测到一个奇怪的行为:在for循环中的某个if语句之后,函数停止。我看不出有什么理由 如果将实际If条件更改为“1==1”,则一切正常。但是由于代码如上所述,我得到了第一个警报(“我们开始了”),但我从未得到第二个警报。因此,这个问题不能与循环联系在一起(是无止境的或类似的)。但除此之外,我完全感到困惑和无助。(使用Firefox 26和Internet Explorer 11进行测试) 函数我的函数(div的个数) { 对于(v

我最近尝试重新使用一个(正在工作!)javascript函数,并检测到一个奇怪的行为:在for循环中的某个if语句之后,函数停止。我看不出有什么理由

如果将实际If条件更改为“1==1”,则一切正常。但是由于代码如上所述,我得到了第一个警报(“我们开始了”),但我从未得到第二个警报。因此,这个问题不能与循环联系在一起(是无止境的或类似的)。但除此之外,我完全感到困惑和无助。(使用Firefox 26和Internet Explorer 11进行测试)


函数我的函数(div的个数)
{

对于(var k=0;k问题是您只有一个具有特定名称的元素,数组索引从零开始,所以您在小于条件时停止

for (var k = 0; k < number_of_divs; k++)

问题是您只有一个具有特定名称的元素,数组索引从零开始,所以在小于条件时停止

for (var k = 0; k < number_of_divs; k++)

这是因为这条线

k <= number_of_divs

k就是因为这条线

k <= number_of_divs

k错误控制台会告诉您问题所在:

Uncaught TypeError: Cannot read property 'style' of undefined
您需要在
if
语句中执行边界检查:

var index = k, 
    levels = document.getElementsByName("text_levels"),
    levelLength = levels.length;

    if(index < levels.length && levels[index].style.display == 'block')
    {
        alert('Here we go');
    }
var指数=k,
级别=document.getElementsByName(“文本级别”),
levelLength=levels.length;
如果(索引
错误控制台会告诉您问题所在:

Uncaught TypeError: Cannot read property 'style' of undefined
您需要在
if
语句中执行边界检查:

var index = k, 
    levels = document.getElementsByName("text_levels"),
    levelLength = levels.length;

    if(index < levels.length && levels[index].style.display == 'block')
    {
        alert('Here we go');
    }
var指数=k,
级别=document.getElementsByName(“文本级别”),
levelLength=levels.length;
如果(索引
这不应该是“==”?您是否尝试过使用诸如firebug之类的调试器进行调试?这不应该是“==”?您是否尝试过使用诸如firebug之类的调试器进行调试?