javascript - 正确获取点击按钮的行索引

标签 javascript jquery html-table onclick row

我尝试了几种方法来获取表格中单击按钮的行索引。

表格:

while ($info = mysqli_fetch_array($sql)) {
    echo "<tr>";
        echo "<th>{$info['name']}</th>";
        echo "<th>{$info['pass']}</th>";
        echo "<th><a href='http://{$info['link']}'>{$info['link']}</a></th>";
        echo "<th><div class='delbuttons'><button class='btn btn-info' data-toggle='modal' data-target='#myModal' id='{$info['id']}'>Delete</button></div></th>";
    echo "</tr>";
}
?>

这些是我尝试过的方法:

$(document).on('click', '.delbuttons button', function(event) {
    alert($(this).index());
}

但它总是返回-1

$(document).on('click','.delbuttons button', function(event) {
    alert(this.rowIndex);
}

这将返回undefined

最佳答案

您的问题在这一行:

alert($(this).index());

根据documentation :

.index(): Search for a given element from among the matched elements.

因为您的按钮是包含在 div 中的唯一元素,所以相应的结果将始终为 0。

为了获取行索引,取而代之,获取最近tr的索引就足够了:

$(this).closest('tr').index()

在第二种方法中,您尝试获取 rowIndex单击的按钮。但此属性仅与表行元素相关。因此,在这种情况下,您将得到 undefined

$(document).on('click','.delbuttons button', function(event) {
    console.log($(this).closest('tr').index());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table>
    <tr>
        <td>name1</td>
        <td>pass1</td>
        <td><a href="http://xxx">xxx</a></td>
        <td>
            <div class="delbuttons">
                <button class="btn btn-info" data-toggle="modal" data-target="#myModal" id="id1"> Delete</button>
            </div>
        </td>
    </tr>
    <tr>
        <td>name2</td>
        <td>pass2</td>
        <td><a href="http://xxx">xxx</a></td>
        <td>
            <div class="delbuttons">
                <button class="btn btn-info" data-toggle="modal" data-target="#myModal" id="id2"> Delete</button>
            </div>
        </td>
    </tr>
    <tr>
        <td>name3</td>
        <td>pass3</td>
        <td><a href="http://xxx">xxx</a></td>
        <td>
            <div class="delbuttons">
                <button class="btn btn-info" data-toggle="modal" data-target="#myModal" id="id3"> Delete</button>
            </div>
        </td>
    </tr>
</table>

关于javascript - 正确获取点击按钮的行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49700070/

相关文章:

javascript - (js) 游戏更新函数中按键的 if 语句

javascript - 如果包含php的div标签为空,则隐藏div或显示某些文本

javascript - Switch-case 不会在更改事件时触发

javascript - CSS 网格调整网格内按钮的大小

javascript - 为什么在缩小 View 框时,我的 SVG 会变大?

javascript - jQuery AJAX 调用 Vanilla JS,我错过了什么?

javascript - 如何使 svg 和鼠标光标位置正确

javascript - 更改 w3 示例表过滤器以搜索多列

html - 表格的 CSS 表格背景颜色未在 Chrome 中显示

HTML:固定表格列宽