我有一个变量我只想在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”重置为零。
答案 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就重置了