JQuery .Parent()

Lia*_*amB 0 jquery

好的,这是我的HTML(一行约20)

<tr class="post-unauth message-unread">
  <td>
    <input class="check-read" type="checkbox" checked="checked" value="68"/>
  </td>
  <td class="message-description" title="Post Title">
  </td>
  <td class="message-author">Name</td>
  <td class="message-dates">3 hours ago</td>
  <td class="message-commentcount" title="0 comment(s)">
  </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

现在,当单击复选框时,我需要更改父级的类

$('.check-read').click(function() {
         $(this).parent().parent().removeClass('message-unread').addClass('message-read');
});
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西,我认为这不起作用(不是错误)但没有任何改变.

我甚至尝试设置CSS背景颜色而不更改HTML.

有什么建议?

sbe*_*rry 5

我想你应该试试最近的.这是jQuery 1.3中的新功能

$(this).closest("tr").removeClass('message-unread').addClass('message-read');
Run Code Online (Sandbox Code Playgroud)

最近的文档

正如Mark在下面的评论中提到的,使用类更适合这里,因为它不太可能受到表结构变化的影响.

 $(this).closest(".message_row").removeClass('message-unread').addClass('message-read');
Run Code Online (Sandbox Code Playgroud)

然后将"message_row"添加到您的tr中.如果未经检查的框保证具有消息未读类,则可以将其用于选择器,而不是添加message_row类并选择它.