它只进入一次

时间:2013-12-20 19:14:30

标签: javascript for-loop

我的js代码上有一个onChange函数,这个函数有一个只执行一次的foor循环(第一次执行函数),我尝试了一些让我确保函数每次都正常运行的东西但是for循环仅在第一次运行,尽管长度参数i每次检查它仍然是相同的值。

// loading the items to the menu
function loadmenu() {
    var selecteditem = $(".selected").text();

    alert(selecteditem);
    for (j == 0; j <= cats.length; j++) {

        if (selecteditem == cats[j]) {
            alert("eshta" + cats.length);
        }
    }

    $("#gallery").empty();
}

2 个答案:

答案 0 :(得分:5)

更改

for(j==0;j<=cats.length;j++){

for(var j=0; j<cats.length; j++){

在您目前的代码中,j是一个全局变量。第二次进入循环时,j已经是cats.length+1,当您使用j==0时,您不会重置它。

如果要迭代cats数组的所有元素,则暂停条件应为<,而不是<=。在您测试cats[cats.length]时,您的代码会产生错误。

答案 1 :(得分:2)

您的for循环中需要=而不是====用于比较。因此,在您的代码中j没有重置,它只是用于比较,它不应该。因此,您需要=来为j分配值。

for(var j=0;j<=cats.length;j++){