动态地为所有孩子分配名称值?

时间:2012-11-14 18:17:47

标签: jquery html loops dynamic

我正在克隆字段集,每次都需要将名称值增加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 ..任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分: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++;
    }
});