替换for循环中的id属性

时间:2012-09-24 02:23:33

标签: javascript jquery clone

我问了另一个问题,并得到了答案,但仍然设法搞砸了。我有一个for循环,我想在我的for循环中制作模板的克隆。我想首次通过循环将每个id替换为id + 0。因此,标识为tFirstName的文本框将为tFirstName0,标识tLastName将为tLastName0,依此类推......然后,对于下一个克隆,然后下一次循环它将是tFirstName1,tLastName1,等等..

此代码的问题是i为每个文本框添加一个,因此在第一个模板中,ID为tFirstName0tLastName1,等等。

我正在寻找 - 如果有人建议让i在for循环中保持统一,那么增加,然后在下一个循环中保持统一

 var NumofClones = (4 * 1);
            for (i = 0; i < NumofClones; i++) {
                var newrow = $('._template').clone().removeClass('_template');
                newrow.find('input[type=text]').attr('id', function (i, oldID) {
                    return oldID + i
                });

                $('.placenewrows').append(newrow);
            }

1 个答案:

答案 0 :(得分:4)

i的回调函数中的.attr()引用参数i,而不是for循环中的i,更改参数i对其他人的回调函数。

 var NumofClones = (4 * 1);
 for (var i = 0; i < NumofClones; i++) {
     var newrow = $('._template').clone().removeClass('_template');
     newrow.find('input[type=text]').attr('id', function (index, oldID) {
         return oldID + i;
     });
     $('.placenewrows').append(newrow);
 }