如何通过javascript/jquery获取单元格中元素的行?

如何通过javascript/jquery获取单元格中元素的行?,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我有一张这样简单的桌子 <table id="tempTable"> <tbody> <tr id="row_01"> <td> <button onclick="btnclick(this);" >Save Row</button> </td> </tr> <

我有一张这样简单的桌子

<table id="tempTable">
    <tbody>
        <tr id="row_01">
            <td>
                <button onclick="btnclick(this);" >Save Row</button>
            </td>
        </tr>
        <tr id="row_02">
            <td>
                <button onclick="btnclick(this);" >Save Row</button>
            </td>
        </tr>
    </tbody>
</table>

function btnclick(e) {
    var currentRow = $(e).parent().parent();
    alert(currentRow.id);
}

保存行
保存行
功能BTN单击(e){
var currentRow=$(e.parent().parent();
警报(currentRow.id);
}
我想确定单击的按钮放在哪一行。所以我在btnclick()中使用了一些jquery方法,正如您看到的。但有时我不知道按钮在第()行中的位置有多深,所以我在寻找一种方法,通过元素的标记
获得祖先

有人帮我吗,谢谢?

试试这个:

function btnclick(e) {
    var currentRow = $(e).closest('tr');
    alert(currentRow.id);
}
closest()
函数将返回其选择器引用的最近祖先。在这种情况下,选择器是一个简单的
元素

摘自:

.最近(选择器) 获取与选择器匹配的第一个元素,从当前元素开始,通过DOM树向上


如果您稍微更改一下HTML,则可以使用更好的方法。如果在每个按钮上都放置了相同的类。
例如:

此函数将使用
.myBtnClass
类捕获对任何元素的点击。

jQuery的方式是:

$('#tempTable').find('button').click(function() {
    var currentRow = $(this).closest('tr');
});

用最近的怎么样

function btnclick(e) {
    var currentRow = $(e).closest('tr');
    alert(currentRow.id);
}

谢谢@TJ希望OP也有同样的感受:)
$('#tempTable').find('button').click(function() {
    var currentRow = $(this).closest('tr');
});
function btnclick(e) {
    var currentRow = $(e).closest('tr');
    alert(currentRow.id);
}