2

我不确定在这里使用什么术语,但是有没有办法在按类选择多个不同元素时为它们分配不同的值?在下面的代码中,我希望所有具有 class="out" 的元素都填充为具有类“value”的相邻(表亲)输入元素的值。(实际上,它更复杂,但这是我的简化问题)。

<tr>
   <div id="samp1">
     <td>Sample 1</td>
     <td><input class="value" type="number" value="100"></td>
     <td><span class="out"></span></td>
   </div>
</tr>
<tr>
   <div id="samp2">
     <td>Sample 2</td>
     <td><input class="value" type="number" value="200"></td>
     <td><span class="out"></span></td>
   </div>
</tr>

我可以通过以下方式获得表弟的价值:

$('.out').closest('div').find('.value').val();

但我不知道如何将这些值相对于每个元素分配,而该值在多个元素之间是相同的......例如:

$('.out').html($('.out').closest('div').find('.value').val());

给了我一个值,但它将文档中的第一个值(在这种情况下,来自#samp1 中的输入的值)分配给所有跨度,包括#samp2 中的跨度。

我觉得我正在寻找类似的东西

$('.out').html($(this).closest('div').find('.value').val());

但这显然不起作用...
感谢您的帮助。

4

3 回答 3

2

用于jQuery.each迭代所有.out元素。

$('.out').each(function(){
  $(this).html($(this).closest('div').find('.value').val());
});

http://api.jquery.com/jQuery.each/

描述:一个通用迭代器函数,可用于无缝迭代对象和数组。具有长度属性的数组和类数组对象(例如函数的 arguments 对象)通过数字索引进行迭代,从 0 到 length-1。其他对象通过其命名属性进行迭代。

于 2012-08-28T22:55:41.603 回答
2
$('.out').each(function(index, elem) {

    var out = $(elem);
    out.html(out.parent().parent().find('.value').val());

});
于 2012-08-28T22:55:50.687 回答
0
$('.out').each(function(){
   $(this).html( $(this).closest('tr').find('.value').val() );
});

另一件事是您的 HTML 无效。

你不能放在标签<div>之间<tr>

于 2012-08-28T22:57:15.320 回答