【问题标题】:Increase variable in for loop [closed]在for循环中增加变量[关闭]
【发布时间】: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


【解决方案1】:

此代码 sn-p 可以按您的意愿工作。我刚刚用true 替换了condition。它会提醒 1,然后是 2。

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

【讨论】:

  • “我无法重现问题”和“您的代码工作正常”是有帮助的贡献,但它们应该是 cmets,而不是答案。
  • 我没有说我不能重现这个问题,或者他的代码工作正常。我说我在答案中发布的代码 sn-p 以提问者希望他的方式工作。所以也许他们可以比较两者,看看他们的代码可能有什么问题。
【解决方案2】:

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

var m = i;

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

我仍然不明白为什么“i”在到达 onClick 后会重置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-31
    • 2013-11-25
    • 1970-01-01
    • 2017-01-26
    • 2017-03-22
    • 1970-01-01
    • 2011-02-24
    • 2016-04-14
    相关资源
    最近更新 更多