如何为克隆的div分配新的Id和名称,在ID的基础上查找?在JQuery中

时间:2015-05-27 12:52:59

标签: javascript jquery html css

有一个DIV,它包含两个输入文本框。

我正在尝试克隆上面的div,即从div上面克隆的另外两个文本框。

但我在为可克隆输入文本框分配新ID和名称时遇到问题。

<div class="panel" id="MyJuicePanel">
<div class="cloning" id="MyJuicePanel1">
<input type="text" value="" name="juice.apple.poland[0].varietyName" id="juice.apple.poland0.varietyName">
<input type="text" value="" name="juice.apple.sweden[0].varietyName" id="juice.apple.sweden0.varietyName">    

在创建新div时,想要将上面的ID替换为0到1,2,3 ...... n

newElem.find("#"+InputId).attr('name', InputName_New).val('');     

替代,我不喜欢:如果我在输入中使用Class,请说class =&#34; input1&#34;,那么很容易分配新的ID&#39; s;但我不想在输入中使用类,并希望根据ID找到并将名称更改为新名称,然后从新名称,我想更改ID。

请更清楚地找到小提琴:https://jsfiddle.net/vc6zappq/

2 个答案:

答案 0 :(得分:2)

有一种简单的方法可以使用data-id和data-type

&#13;
&#13;
            var InputId = $(this).attr('data-id')+1;
            var InputType = $(this).attr('data-type');
            var InputName_New = "juice.apple."+InputType+"["+InputId+"].vaietyName";
&#13;
<div class="panel" id="MyJuicePanel">
        <div class="cloning" id="MyJuicePanel1">
            <input type="text" data-id="1" data-type="poland"  value="" name="juice.apple.poland[0].varietyName" id="juice.apple.poland0.varietyName">
            <input type="text" data-id="1" data-type="sweden" value="" name="juice.apple.sweden[0].varietyName" id="juice.apple.sweden0.varietyName">
        </div>
                  <button id="addBut" type="button" >Add It</button>
    </div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

第一个问题是你循环旧的输入,而当你改变它并循环新的输入时,你可以访问它们,你可以更改名称或ID或任何你想要的。

$(cloneId+" input").each(function(){

必须是

newElem.find("input").each(function(){

然后您可以更改输入属性

$(this).attr("id", InputId_New);
$(this).attr("name", InputName_New);

https://jsfiddle.net/vc6zappq/8/