有一个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/
答案 0 :(得分:2)
有一种简单的方法可以使用data-id和data-type
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;
答案 1 :(得分:1)
第一个问题是你循环旧的输入,而当你改变它并循环新的输入时,你可以访问它们,你可以更改名称或ID或任何你想要的。
$(cloneId+" input").each(function(){
必须是
newElem.find("input").each(function(){
然后您可以更改输入属性
$(this).attr("id", InputId_New);
$(this).attr("name", InputName_New);