在jquery

时间:2016-06-02 18:33:54

标签: javascript jquery

所以我有一个附加一组表单字段的脚本。每次用户附加表单时,我都会将其设置为自动增加一个数字,并将其添加到所有表单字段ID的末尾。这很好用。我还在每个表单中都有一个复选框,如果单击它,则复制数据。现在我只为每个数字增量编写一个单独的脚本,例如:

$(document).on('click', '.same-1', function(){ 
if($(this).is(':checked')){
    $('#baddress1-1').val( $('#street1').val() );
    $('#baddress2-1').val( $('#street2').val() );
    $('#bcity-1').val( $('#city').val() );
    $('#bstate-1').val( $('#state').val() );
    $('#bzip-1').val( $('#zip').val() );
}
});

因此,例如“same-1”匹配#baddress1-1,其中“-1”是数字的增量。有没有办法说jquery'.same- [递增的数字],#bzip- [递增的数字]等等,所以我只需要编写一次脚本?

1 个答案:

答案 0 :(得分:0)

您可能希望将计数器变量存储在if语句范围之外。

$(document).on('click', '.same-1', function(){ 
    // this will auto increment
    var counter = 0;

    if($(this).is(':checked')){
        // incrementing
        counter++;

        // just use concatenation to target the right one automagically
        $('#baddress1-' + counter).val( $('#street1').val() );
        $('#baddress2-' + counter).val( $('#street2').val() );
        $('#bcity-' + counter).val( $('#city').val() );
        $('#bstate-' + counter).val( $('#state').val() );
        $('#bzip-' + counter).val( $('#zip').val() );
    }
});