简体   繁体   中英

How to get table row index when the column textbox value change using jQuery

I want to get row index and text box values when the table price text box value changes. At the moment I'm getting some undefined value.

HTML

<table class="table table-striped">
    <thead>
        <tr>                   
            <th>Product</th>                              
            <th>Price</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <input type="text" class="form-control product">
            </td> 
            <td>
                <input type="text" oninput="javascript:GetValue(this);" class="form-control price">
            </td>
        </tr>
    </tbody> 
</table>

JavaScript

function GetValue(oTextBox) {
    var price = oTextBox.value;
    var product = oTextBox.parent().prev().innerHTML.value;
    var rowindex = oTextBox.closest('tr').index();
}

I get this error:

TypeError: oTextBox.parent is not a function var product = oTextBox.parent().prev().innerHTML.value;

用$(oTextBox)替换函数中的oTextBox,然后可以使用html()代替innerHTML,如下所示

$(oTextBox).parent().prev().html()

You need to wrap oTextBox in $ in order to use jQuery methods. That's be cause oTextBox ... or ... this is a DOM element and not a jQuery object. Thus:

var product = oTextBox.parent().prev().innerHTML.value;

Should be:

var product = $(oTextBox).parent().prev().find('input').val();

And:

var rowindex = oTextBox.closest('tr').index();

Should be:

var rowindex = $(oTextBox).closest('tr').index();

SUGGESTION

I would encourage you to not use inline JS:

<input type="text" class="form-control price">

Then your jQuery would be:

$(function() {
    $('input.price').on('input', function() {
        var price = this.value;
        var product = $(this).parent().prev().find('input').val();
        var rowindex = $(this).closest('tr').index();
        //....
    });
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM