4

これについて別の質問をしたところ、回答が得られましたが、それでもうまくいきませんでした。for ループがあり、 for ループでテンプレートのクローンを作成したいと考えています。ループを初めて通過するときに、各 ID を ID + 0 に置き換えたいと思います。したがって、id付きのテキストボックスはとなり、 idtFirstNameはとなります...そして、次の clone の場合、次回はループを介して tFirstName1 、 tLastName1 などになります..tFirstName0tLastNametLastName0

このコードの問題はi、すべてのテキスト ボックスに 1 つを追加することです。そのため、最初のテンプレートでは、id はtFirstName0, tLastName1, ect ..

私が探している-誰かがifor ループ全体で均一に保つという提案を持っている場合は、 を増やしてから、次のループまで均一に保ちます

 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);
            }
4

1 に答える 1

4

のコールバック関数i内では、 for ループ内ではなく.attr()パラメータを参照し、コールバック関数のパラメータを他のものに変更します。iii

 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);
 }
于 2012-09-24T02:28:47.870 に答える