Javascript 添加i++;对于按钮将创建的每一新行

Javascript 添加i++;对于按钮将创建的每一新行,javascript,jquery,Javascript,Jquery,我尝试用PHP和Javascript创建一些可重复的字段。这很好,但在保存帖子(为WordPress创建插件)后,克隆行将覆盖最新的一行。这是因为我没有为每一行使用唯一的id 我想用javascript添加一个“id”属性,我想为每一行添加id 1。我已经用PHP做了类似的事情,但发现这不是我想要的,我觉得用javascript更好,因为当我用“AddNew”按钮克隆字段时,数量不会随着+1增加 以下是我使用过的php代码: $count = 2; for ($i = 0; $i < $c

我尝试用PHP和Javascript创建一些可重复的字段。这很好,但在保存帖子(为WordPress创建插件)后,克隆行将覆盖最新的一行。这是因为我没有为每一行使用唯一的id

我想用javascript添加一个“id”属性,我想为每一行添加id 1。我已经用PHP做了类似的事情,但发现这不是我想要的,我觉得用javascript更好,因为当我用“AddNew”按钮克隆字段时,数量不会随着+1增加

以下是我使用过的php代码:

$count = 2;
for ($i = 0; $i < $count; $i++) {

    // Begin a table row
    echo '<tr class="row" id="' . '['.$i.']' . '-repeatable">';
    echo '<td class="order">' . '['.$i.']' . '</td>';

            // Do cool stuff inside the row

    echo '<td class="remove"><a class="repeatable-remove button" href="#">-</a></td>';
    echo '</tr>'; // End .row

} // End for loop

<a href"#" class="button">Add new row</a>
我想我必须做一些类似这一行的事情:

clone.find('tr.row').attr('id', 'repeatable-' + addInteger);

但是如何在Jquery/Javascript中增加+1,就像我在PHP中的示例一样?

您要做的是查看要克隆的行的ID,并使用该ID为新行提供适当的索引值。我在您的示例中添加了两行代码,一行定义一个名为
cloneddidex
的新变量,另一行使用该变量中的值为克隆行定义一个新ID

jQuery('.repeatable-add').click(function() {
    // Clone row
    var row = jQuery(this).closest('.ui-sortable').find('tbody tr.row:last-child'),
        clone = row.clone(),
        clonedIdIndex = parseInt( clone.find('tr.row').attr('id').split('-')[1], 10 );

    clone.find('input[type=text], text, textarea, select, input.upload_image').val('');    
    clone.find('.preview_image').attr('src', ''); // Reset the values

    // Assign new ID
    clone.find('tr.row').attr('id', 'repeatable-' + (++clonedIdIndex));

    row.after(clone);

    //
    return false;
});

这些身份证是用来干什么的?它们是否存储在数据库中?它们似乎是任意创建的,如果它们是任意的,为什么需要它们?在没有删除任何行的情况下,添加它们很容易,但是一旦删除了行,就需要知道删除的ID是否可以重用,并且需要确保没有重复,并且需要知道服务器是否需要生成ID。ID尚未定义,所以a所说的是,我想将Id添加到tr类行。只剩下一个问题,什么是[1]的意思,然后是10<代码>属性('id')。拆分('-')[1],10).attr('id','repeatable').split('-')[1],10)来更改代码段行吗?因此,使用
split
函数,可以通过指定为参数的分隔符将现有字符串拆分为子字符串数组。在本例中,破折号是我们的分隔符,因此只要所有ID的形式类似于“repeatable-[number]”,您就有一个由两个元素组成的数组。数组[0]中的第一个插槽应包含字符串“repeatable”,数组[1]中的第二个插槽应包含刚刚克隆的行的ID。至于10,每当使用parseInt函数时,必须指定两个参数。第一个参数是要转换的字符串。第二个参数是您将使用的基数,以便JavaScript知道要转换字符串的基数。在本例中,您只需要将字符串转换为base-10。
jQuery('.repeatable-add').click(function() {
    // Clone row
    var row = jQuery(this).closest('.ui-sortable').find('tbody tr.row:last-child'),
        clone = row.clone(),
        clonedIdIndex = parseInt( clone.find('tr.row').attr('id').split('-')[1], 10 );

    clone.find('input[type=text], text, textarea, select, input.upload_image').val('');    
    clone.find('.preview_image').attr('src', ''); // Reset the values

    // Assign new ID
    clone.find('tr.row').attr('id', 'repeatable-' + (++clonedIdIndex));

    row.after(clone);

    //
    return false;
});