如何在表格中选择元素的父行?

时间:2012-07-22 18:16:04

标签: javascript jquery

我有以下功能:

$("#example tbody").click(function(event) {
        $(oTable.fnSettings().aoData).each(function (){
            $(this.nTr).removeClass('row_selected');
        });
        $(event.target.parentNode).addClass('row_selected');
    });

当用户单击表中的td元素时,它会将row_selected类添加到该行。但是,当用户单击td内的输入元素时,它会添加row_selected 上课到td。

有没有办法可以更改event.target.parentNode而不是父级 它将类添加到父tr?

4 个答案:

答案 0 :(得分:6)

使用closest()

$(event.target).closest('tr').addClass('row_selected');

答案 1 :(得分:1)

更改处理程序以使用jQuery的事件委派而不是您自己的...

$("#example tbody").on("click", "tr", function(event) {

...然后你可以使用this ...

$(this).addClass('row_selected');

答案 2 :(得分:0)

您可以使用 parentsUntil()函数,这有点像寻找祖先。我无法记住祖先的功能,但这会奏效:

$(event.target).parentsUntil("tr").addClass('row_selected');

答案 3 :(得分:0)

你可以试试这个

$(event.target).closest('tr').addClass('row_selected');

而不是你的行

$(event.target.parentNode).addClass('row_selected');

使用nearest(),您可以将row_selected类应用于您单击的元素的最近tr元素,该元素可能是td或其中的任何其他元素。