增加for循环中的变量

时间:2014-10-17 20:42:31

标签: javascript for-loop increment

我有一个变量我只想在for循环中满足条件时增加。 if语句中的其他代码完美运行但变量从不递增。是否可以在jQuery中执行此操作?

以下是我一直在尝试的简化示例:

var i = 0;
for (var c = 1; c < 3; c++) { 
    if(condition){
        i++;
    }
}
编辑:我很抱歉我的问题有点不清楚。

这是我实际上要做的事情:

<button id="showNew">Show Next Button</button>

<button id='button1' style="display:none;">Button 1</button>
<button id='button2' style="display:none;">Button 2</button>
<button id='button3' style="display:none;">Button 3</button>

<span id="value1" style="display:none;">123</span>
<span id="value2" style="display:none;">456</span>
<span id="value3" style="display:none;">0</span>

<script>
var i = 0;
for (var c = 1; c < 3; c++) { 
    var start = jQuery('#value' + c).text();

    if(start != "0"){
        jQuery('#button' + c).show();
        i++;
    }
}

jQuery(document).ready(function() {
    jQuery('#showNew').on("click", function () {
        jQuery('#button' + ++i).show();
        return false;
    });
});
</script>

前两个按钮显示页面加载的时间,但我必须在显示第三个按钮之前单击“#showNew”按钮3次。

我制作了一个jsFiddle,它运行正常,所以必须与我网站上的其他内容发生冲突。奇怪的是,如果我把“警报(i);”在我网站上的for循环后,我得到了我正在寻找的号码(2)。一旦它因某种原因到达onclick,它似乎将“i”重置为零。

2 个答案:

答案 0 :(得分:0)

此代码段的工作方式与您想要的一样。我刚刚将condition替换为true。它会提醒1,然后是2。

var i = 0;
for (var c = 1; c < 3; c++) { 
    if(true) {
        i++;
        alert(i);
    }
}

答案 1 :(得分:0)

我最终解决了自己的问题。因为&#34;我&#34;在onClick之前是正确的,我创建了一个值为&#34; i&#34;的新变量。

var m = i;

jQuery(document).ready(function() {
    jQuery('#showNew').on("click", function () {
        jQuery('#button' + ++m).show();
        return false;
    });
});

我仍然不明白为什么&#34;我&#34;一旦到达onClick就重置了