我正在尝试迭代3个表单,其中包含不同数量的输入框.在每个表单中,输入字段具有相同的类.我需要做的是,有一个“复制”按钮,这样当按下它时,它将复制一个字段的输入并将其复制到每个字段.以下是目前设置的方式:
<input type="button" class="replicate" />
<form class="1">
<input class="1_size" /> <!--this is the one I want to copy to all other fields -->
</form>
<form class="1">
<input class="1_size" />
</form>
<form class="2">
<input class="2_size" />
</form>
<form class="2">
<input class="2_size" />
</form>
<form class="2">
<input class="2_size" />
</form>
<form class="3">
<input class="3_size" />
</form>
<form class="3">
<input class="3_size" />
</form>
所以我需要做的[当按下复制按钮时]是迭代每个表单并使用第一个表单的输入(请参阅注释)并将其复制到所有其他表单中的所有其他输入.这甚至可能吗?存在具有相同类和输入的表单的原因是因为它们具有“”和“ – ”按钮
我正在使用jQuery库,我想我可以做类似的事情:
$(document).ready(function() {
$('.1, .2, .3').each(function() {
});
});
我可以使用.parents()或parent()之类的东西吗?我有点卡住,甚至不确定你是否可以像这样使用每个()…希望我已经解释得很好!
解决方法:
如果你只有一个“复制”按钮,你可能应该给它一个id而不是一个类用于选择目的,但无论如何,下面为该按钮创建了一个单击处理程序,它将选择具有以“_size”结尾的类属性的所有输入除了第一个,并从第一个分配值:
$(document).ready(function(){
$("input.replicate").click(function() {
var inputs = $('input[class$="_size"]');
inputs.not(":first").val( inputs.first().val() );
});
});
请注意,如果有多个类分配给输入,我使用的选择器将不起作用 – 在您的示例中没有,但当然可能在最终产品中 – 所以您可能想要做类似的事情这个:
var inputs = $(".1,.2,.3").find("input");