我有一个文本框数量和文本框unit_price连续。现在我想将qty的值传递给unit_price。我能够获得qty的值但是我不能将值传递给它的unit_price行,而是将qty值传递给每个unit_price的行。
HTML:
<table class="data">
<tr>
<td><input="text" class="qty" name="qty[]"></td><td><input="text" class="unit_price" name="unit_price[]"></td>
</tr>
<tr>
<td><input="text" class="qty" name="qty[]"></td><td><input="text" class="unit_price" name="unit_price[]">
</td>
</tr>
<tr>
<td><input="text" class="qty" name="qty[]"></td><td><input="text" class="unit_price" name="unit_price[]">
</td>
</tr>
这是我的jquery:
$('table.data').on('change','.qty',function(){
var val = $(this).parent().parent().find('input[type=text]').val();
alert(val);
$(".unit_price").parent().parent().find('input[type="text"]').val(val);
})
需要一些关于如何将qty的值传递给unit_price的帮助。
答案 0 :(得分:2)
您需要使用.closest()
两次来到最近的父级而不是.parent()
,并确保使用this
位于选择器的上下文中:
$('table.data').on('change','.qty',function(){
var val = $(this).val();
alert(val);
$(this).closest('tr').find(".unit_price").val(val);
})
答案 1 :(得分:0)
假设检索单价是正确的。 使用jquery prev()函数查找上一个文本框。
var unitPriceObj = $(this).parent().parent().find('input[type=text]');
var unitPrice = unitPriceObj .val(); // get unit price value
unitPriceObj.prev('input').val(unitPrice ); // assign it to qty
答案 2 :(得分:0)
你走了:
$('table.data').on('change','.qty',function() {
var qtyInput = $(e.target)
qtyInput.parents("tr").find('.unit_price').val( qtyInput.value );
})
答案 3 :(得分:0)
或使用.next()方法获取以下内容
$('table.data').on('change','.qty',function(){
$(this).parent().next().find(".unit_price").val($(this).val());
})