【问题标题】:Why my function incrementing plus 2?为什么我的函数递增加 2?
【发布时间】:2018-06-05 07:30:31
【问题描述】:

你好,我写了一个函数:

$(function() {
    $('button').on('click', function() {
        var $tile = $('.tile');
        for (i = 1; i <= 16; i++)
        $("#board").append('<div id="c' + ($tile.length + i++) + '" class="card"></div>');
    });
});

为什么我的 id 增加了 2 而不是 1?

感谢任何人的回答。那真是个愚蠢的错误……

【问题讨论】:

  • ($tile.length + i++) 应该是 ($tile.length + i)
  • i++ 和 i++ 再次...

标签: javascript increment


【解决方案1】:

代码i++ 递增i。您的循环中有两次此代码:一次在循环语句本身中,一次在 DOM 代码中的循环内。您需要删除或其他。在循环中增加 i 是很自然的,所以通过更改这个来删除另一个:

$tile.length + i++

只是:

$tile.length + i

【讨论】:

    【解决方案2】:

    您将i 增加两次。

    $(function() {
        $('button').on('click', function() {
            var $tile = $('.tile');
            for (i = 1; i <= 16; i++)
            $("#board").append('<div id="c' + ($tile.length + i) + '" class="card"></div>');
        });
    });

    【讨论】:

      【解决方案3】:

      你将加 1 两次:

      1. 循环语句中的第一个

        for (i = 1; i <= 16; i++)
        
      2. 然后在循环体中再次

        ($tile.length + i++)
        

      【讨论】:

        【解决方案4】:

        你在两个地方增加 i。

        for循环内部

        for (i = 1; i <= 16; i++)
        

        $tile.length + i++
        

        因此它增加了两倍

        【讨论】:

          【解决方案5】:

          不要在此再次增加 i: ($tile.length + i++)

          改为这样做: ($tile.length + i)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-09-14
            • 1970-01-01
            • 1970-01-01
            • 2021-12-13
            • 2022-11-24
            • 2016-06-08
            • 1970-01-01
            相关资源
            最近更新 更多