我不确定在这里使用什么术语,但是有没有办法在按类别选择时为多个不同的元素分配不同的值?在下面的代码中,我希望将所有带有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());
但这显然不起作用...
谢谢你的帮助。
答案 0 :(得分:2)
$('.out').each(function(index, elem) {
var out = $(elem);
out.html(out.parent().parent().find('.value').val());
});
答案 1 :(得分:1)
使用jQuery.each
迭代所有.out
个元素。
$('.out').each(function(){
$(this).html($(this).closest('div').find('.value').val());
});
http://api.jquery.com/jQuery.each/
描述:一个通用的迭代器函数,可用于 无缝迭代对象和数组。数组和数组 具有length属性的对象(例如函数的arguments对象) 由数字索引迭代,从0到length-1。其他对象是 通过命名属性进行迭代。
答案 2 :(得分:0)
$('.out').each(function(){
$(this).html( $(this).closest('tr').find('.value').val() );
});
另一件事是你的HTML无效。
您无法将<div>
放在<tr>
代码