Javascript 为什么我的函数递增加2?

Javascript 为什么我的函数递增加2?,javascript,increment,Javascript,Increment,你好,我写了一个函数: $(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>'); }); })

你好,我写了一个函数:

$(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>');
    });
});
$(函数(){
$('button')。在('click',function()上{
变量$tile=$('.tile');

对于(i=1;i代码
i++
递增
i
。此代码在循环中有两次:一次在循环语句本身,一次在DOM代码的循环内。您需要删除或其他。在循环中递增
i
是很自然的,因此通过更改此项来删除其他代码:

$tile.length + i++
只是:

$tile.length + i

您将递增
i
两次

$(函数(){
$('button')。在('click',function()上{
变量$tile=$('.tile');

对于(i=1;i您将以1的倍数递增两次:

  • 循环语句中的第一个

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

  • 你在两个地方增加i

    内循环

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

    因此,它将增加两倍

    在以下情况下,不要再次增加i: ($tile.length+i++)

    而是这样做:
    ($tile.length+i)

    ($tile.length+i++)应该是($tile.length+i)i++并且再次是i++。。。
    for (i = 1; i <= 16; i++)
    
    $tile.length + i++