开发者问题收集

在 jQuery 中从子元素获取父 tr 元素

2013-11-13
7703

我的代码中有以下表格结构

<tr>
  <td>Text 1 </td>
  <td>Text 2 </td>
  <td> <span class="edit" onclick="EditAccountInfo(id1)" /> </td>
</tr>
<tr>
  <td>Text 1 </td>
  <td>Text 2 </td>
  <td> <span class="edit" onclick="EditAccountInfo(id2)" /> </td>
</tr>

单击 <td> 中的跨度时,我想突出显示所选行 ( <tr> )。我在 javascript 函数中使用以下代码

function EditAccountInfo(id)
{
  $(this).closest('tr').css("background-color", "red");
}

我没有收到任何错误,并且 $(this).closest('tr') 返回有效对象,但背景颜色样式未应用于 <tr>

我做错了什么?

3个回答

thiswindow ,因为您使用的是内联事件处理程序。我建议采用一种更不显眼的方法:

<span class="edit" data-account-id="id1" />

$(document).on('click', '.edit', function() {
    var $tr = $(this).closest('tr');
    var id = $(this).data('account-id');
    //...
});
Jason P
2013-11-13
$('#my-table').on('click', '.edit', function () {
    $(this).closest('tr').css('backgroundColor','red');
});
captbrogers
2013-11-13

尝试

$(document).ready(function () {
    $('td').click(function(){
        $(this).parent().css("background","red");
    });
});
Joao Paulo
2013-11-13