-1

フィールドセットのクローンを作成していますが、名前の値を毎回1ずつインクリメントする必要があります。

これがjqueryです:

i = 2;
$("#AddOne").click(function () {
    if (i < 11) {
        var itemNum = "<div class='iSep'>Item "+ i +"</div>";
        $("#cloneSet").clone().prepend(itemNum).appendTo("#cloneRet");
        i++;
    }
});

関連するHTMLは次のとおりです。

<div id="cloneSet">
<label for="ModelNumber1">Model Number:</label>
<input type="text" name="ModelNumber1" class="required"><br />
<label for="SerialNumber1">Serial Number:</label>
<input type="text" name="SerialNumber1" class="required"><br />
<label for="ConditionofUnit1">Condition of Unit:</label>
<select name="ConditionofUnit1" class="required">
<option value="">Choose an option</option> 
<option value="Open: Defective">Open: Defective</option>
<option value="Open: Non-defective">Open: Non-defective</option>
<option value="Factory Sealed">Factory Sealed</option>
</select><br />
</div>

<div id="cloneRet"></div>

したがって、ラベルを含むすべてのフォーム要素で、すべてのforとnameの値を1からiにインクリメントしたいと思います。誰か助けてもらえますか?

4

1 に答える 1

0

進行中にすべてのfor属性とname属性を更新します

正直なところ、なぜこれをやりたいのかわからないので、クラスを使用することをお勧めします

しかし、それはあなたの質問ではありませんでした。

i = 2;
$("#AddOne").click(function () {
    if (i < 11) {
        var itemNum = "<div class='iSep'>Item "+ i +"</div>";
        $("#cloneSet:first").clone().prepend(itemNum).appendTo("#cloneRet")
        .children().each(function(){
             $(this).attr('name',$(this).attr('name').replace(i,i+1))
             $(this).attr('for',$(this).attr('for').replace(i,i+1))
        });
        i++;
    }
});
于 2012-11-14T18:22:43.233 に答える