我想用Jquery在下一个TD中选择一个输入字段。我不能使用ID或类,因为可以添加或删除表的行。
喜欢,
<tr>
<td><input type='text' name='price[]' onkeyup = 'getTest(this)' /> </td>
<td><input type='text' name='qty[]' onkeyup = 'getPrice(this)' value='1' /> </td>
<td><input type='text' name='amount[]' /> </td>
</tr>
function getTest(obj){
//I want to select qty[] and amount[]
}
function getPrice(obj){
//I want to select price[] and amount[]
}
任何人都知道如何选择输入字段,请帮忙〜!
由于
答案 0 :(得分:3)
working demo
您预期的网页行为。
答案 1 :(得分:0)
Chinmayee的答案比这个好得多,但是如果你不想改变你的任何HTML标记,你可以直接将它放到你的JavaScript中,它会起作用:
function getTest(obj) {
var tr = $(obj).closest('tr');
var qty = tr.find('input[name="qty[]"]');
var amount = tr.find('input[name="amount[]"]');
console.log('qty: ' + qty.val());
console.log('amount: ' + amount.val());
}
function getPrice(obj) {
var tr = $(obj).closest('tr');
var price = tr.find('input[name="price[]"]');
var amount = tr.find('input[name="amount[]"]');
console.log('price: ' + price.val());
console.log('amount: ' + amount.val());
}
但Chinmayee的答案比我的更好的原因是因为它使用了不引人注目的JavaScript,它也使用了事件委托,所以它会表现得更好。
答案 2 :(得分:0)
以下是您的问题的可能解决方案(假设您希望金额 价格 * qty ):
$(document).ready(function(){
$('[name="price[]"], [name="qty[]"]').live('keyup', function(){
var inputs = $(this).closest('tr').find('input');
$(inputs[2]).val($(inputs[0]).val()*$(inputs[1]).val());
});
});
此解决方案不再需要getTest()和getPrice()方法,您也可以删除onkeyup="..."
元素上的input
属性。
See here用于演示。