好的,这是我的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.
有什么建议?
我想你应该试试最近的.这是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类并选择它.