【发布时间】:2014-10-17 20:42:30
【问题描述】:
我有一个变量,我只想在 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,它运行良好,因此肯定与我网站上的其他内容存在冲突。奇怪的是,如果我输入“alert(i);”在我的网站上的 for 循环之后,我立即得到了我正在寻找的号码 (2)。出于某种原因,一旦到达 onclick,它似乎会将“i”重置为零。
【问题讨论】:
-
哪个变量?这就是
c++的意义所在。这里不需要 jQuery。 -
condition是什么?它没有被定义,所以i++部分永远不会执行。 -
假设
condition是真的,你所拥有的看起来不错。你能给我们一个可重现的例子吗? -
顺便说一句,在 JavaScript 中是可能的。 JavaScript !== jQuery!
-
代码运行良好 > jsfiddle.net/s3yv6s1c
标签: javascript for-loop increment