如何找到在jquery中单击按钮的行号?

Man*_*esh 1 javascript ajax jquery

我有一个表格,其中最后一列中有一个名为 issue 的按钮。在每一行中,当我单击按钮时,我希望它调用一个从服务器获取特定值的 ajax 函数。来自服务器的值将根据选择的行而有所不同。我目前的代码如下

var $dntb = $("#dntb");
$dntb.on("focusin", function() {
        var i //have to get the row where the button is clicked 
        $("#iss" + i).click(function(event) {
        var sditmId = $("#sditm").val();
        var sdhedId = $("#sdhed").val();
        $.get('getstock', {
               sditmId: sditmId,
               sdhedId: sdhedId
        }, function(response) {
        $("#stk").val(response);
        });
        });
});
Run Code Online (Sandbox Code Playgroud)

请告诉我如何在上面的代码中找到'i'的值,如果这是错误的请告诉我正确的方法

下表给出

<table class="table table-bordered table-striped table-hover" id="dntb">
                        <thead>
                        <th><strong>Sales Order Number</strong></th>
                        <th><strong>Reference Order</strong></th>
                        <th><strong>Order Item</strong></th>
                        <th><strong>Quantity</strong></th>
                        <th><strong>Transport Time</strong></th>
                        <th><strong>Mode of Shipment</strong></th>
                        <th><strong>Delivery Date</strong></th>
                        <th><strong>Actions</strong></th>
                        </thead>
                        <jsp:useBean id="gen" scope="request" class="Common.General"/>
                        <tbody>
                            <c:set var="i" value="0"/>
                            <c:forEach items="${dlv.allDeliveryDetails}" var="row">
                                <tr>
                                    <td>${row.sdhedIdDn}</td>
                                    <td>${row.sdhedDn}</td>
                                    <td>${row.sditmDn} - ${row.prdDn}</td>
                                    <td>${row.qtyDn}</td>
                                    <td>${row.trntmDn}</td>
                                    <td>${row.mshDn}</td>
                                    <td>${row.datDn}</td>
                                    <td>
                                        <button type="button" class="btn btn-default btn-sm btn-primary" data-toggle="modal" data-target="#myModal" onclick="setData('${row.sdconDn}', '${row.sdhedIdDn}', '${row.sditmDn}', '${row.sdconIdDn}')" id="iss">
                                            <span class="glyphicon glyphicon-download"></span> Issue
                                        </button>
                                    </td>
                                </tr>
                                <c:set var="i" value="${i+1}"/>
                            </c:forEach>
                        </tbody>
                        <tfoot>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        </tfoot>
                    </table>
Run Code Online (Sandbox Code Playgroud)

Out*_*ker 5

这可能对你有帮助 .. :)

注意:Jquery 版本 >=1.7

$('body').on('click', 'button', function(event) {
        var rowindex = $(this).closest('tr').index();
        console.debug('Index', rowindex);
    });
Run Code Online (Sandbox Code Playgroud)

供参考

指数()

  • 更好的是将它委托给 TABLE 级别,而不是 body imho (2认同)