2014-10-17 205 views
-2

我有一个变量,我只想在for循环中满足条件时递增。 if语句中的其他代码完美工作,但变量不会增加。是否有可能在jQuery中做到这一点?在for循环中增加变量

这里是什么,我一直在尝试一个简单的例子:

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它工作正常,所以必须与我的网站上的其他内容发生冲突。奇怪的是,如果我把“提醒(我);”紧接在我网站上的for循环之后,我得到了我正在寻找的数字(2)。由于某种原因,它在到达onclick后似乎将“i”重置为零。

+2

哪些变量?这就是'C++'的一点。这里不需要jQuery。 – 2014-10-17 20:44:02

+1

什么是条件?它没有定义,所以'i ++'部分永远不会执行。 – 2014-10-17 20:44:55

+2

你有什么看起来不错,假设条件是真的。你能给我们一个可重复的例子吗? – 2014-10-17 20:44:57

回答

0

最后我解决我自己的问题。由于“我”在onClick之前是正确的,我创建了一个值为“i”的新变量。

var m = i; 

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

我还是不明白,为什么“我”被重置,一旦它到达的onClick虽然

0

此代码片段可以像你想要的那样工作。我刚刚用true替换condition。它提醒1,然后2

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

+3

“我不能重现问题”和“你的代码工作正常”是有帮助的,但他们应该是评论,而不是答案。 – 2014-10-17 20:50:12

+0

我没有说我不能重现问题,或者他的代码工作正常。我说我发布在我的答案中的代码片段按提问者希望他工作的方式工作。所以也许他们可以比较两者,看看他们的代码可能有什么问题。 – Zack 2014-10-17 21:25:03