簡體   English   中英

如何使用Jquery在下一個TD中選擇輸入字段?

[英]How to select a input field in next TD with Jquery?

我想用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[]
}

任何人都知道如何選擇輸入字段,請幫忙〜!

謝謝

您的網頁預期行為的working demo

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,並且還使用了事件委托,因此它的性能會更好。

這是您問題的一種可能解決方案(假設您希望金額price * 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()方法,您還可以在input元素上刪除onkeyup="..."屬性。

看到這里工作演示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM