我有以下功能:
$("#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?
答案 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
或其中的任何其他元素。