克隆多个字段值不正确

时间:2017-10-15 20:04:07

标签: javascript jquery

我在下面尝试了这个。

$('#btn3').click(function() {
  $('.test3').val($('.bbb').val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="btn3">Copy Each hidden value to text value</button><br>
<input type="hidden" class="bbb" value="10"><br>
<input type="text" class="test3" value="15"><br>
<input type="hidden" class="bbb" value="40"><br>
<input type="text" class="test3" value="60"><br>
<input type="hidden" class="bbb" value="100"><br>
<input type="text" class="test3" value="110"><br>

我会以精确的价值为每个领域工作。单击“将每个隐藏值复制到文本值”按钮时,该值应为10,40,100。

3 个答案:

答案 0 :(得分:2)

您发布的代码需要获得的结果。如果您希望为每个test3分配前面的元素值(bbb),请在元素循环中使用.prev()函数。

$('#btn3').click(function(){
  $('.test3').each(function(){
     $(this).val($(this).prev('.bbb').val());
  });
});

答案 1 :(得分:1)

&#13;
&#13;
$('#btn3').click(function(){
   $('.test3').each(function(key){
    $(this).val($(".bbb").get(key).value);
   });
});
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<button type="button" id="btn3">Copy Each hidden value to text value</button><br>
<input type="hidden" class="bbb" value="10"><br>
<input type="text" class="test3" value="15"><br>
<input type="hidden" class="bbb" value="40"><br>
<input type="text" class="test3" value="60"><br>
<input type="hidden" class="bbb" value="100"><br>
<input type="text" class="test3" value="110"><br>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

要实现此目的,您可以将函数传递给val(),该函数会从距离给定.bbb元素最近的.test3中检索值:

&#13;
&#13;
$('#btn3').click(function() {
  $('.test3').val(function() {
    return $(this).prevAll('.bbb:first').val();
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="btn3">Copy Each hidden value to text value</button><br>
<input type="hidden" class="bbb" value="10"><br>
<input type="text" class="test3" value="15"><br>
<input type="hidden" class="bbb" value="40"><br>
<input type="text" class="test3" value="60"><br>
<input type="hidden" class="bbb" value="100"><br>
<input type="text" class="test3" value="110"><br>
&#13;
&#13;
&#13;

请注意,您需要在此使用prevAll(),因为.bbb.test3元素不是兄弟姐妹,因为它们之间有<br />