对不起,如果标题没有意义,基本上我有一堆像这样的表行:
<table>
<tr class="odd">
<td><button class="button_clicked">Hide row</button></td>
</tr>
<tr class="even">
<td><button class="button_clicked">Hide row</button></td>
</tr>
<tr class="odd">
<td><button class="button_clicked">Hide row</button></td>
</tr>
<tr><td class="notes"</td></tr>
</table>
每个tr都有一个类,奇数是白色背景,甚至有灰色背景。我使用jquery,如果单击其中一个td中的按钮,则隐藏单击按钮的整个tr行。一些表行在其后面有一个额外的tr用于注释,因此jquery也会检测是否存在,如果是,则同时删除该tr。但现在的问题是,如果我隐藏了一个灰色背景的tr,它下面的表格行出现了,现在我有2个白色的表行,打破了表行的奇数/偶数设计。所以我尝试在下面编写额外的代码来进行额外的检查,但它会阻止脚本工作。它不会给我一个错误,它只是显示脚本已中止,有任何建议吗?
$('.button_clicked').click( function(e) {
var row = $(this).closest('tr');
// hide this row first
row.hide();
// next, get the next TR, see if it is a notes row, and hide it if it is
var nxt = row.next();
if (nxt.hasClass('show_notes')) {
nxt.hide();
}else
{
if (nxt.hasClass('odd')) {
nxt.attr('class','even');
}else
{
nxt.attr('class','odd');
}
}
e.preventDefault();
});
答案 0 :(得分:1)
尝试这样做
if (nxt.hasClass('show_notes')) {
nxt.hide();
}
else {
row.nextAll('tr').toggleClass('odd even');
}