我的桌子上有隐藏的行,就像这样
-visible-
-invisible-
-visible-
-invisible-
当我点击表格行时,我希望它显示不可见的行。目前我有使用此功能:
var grid = $('#BillabilityResults');
$(".tbl tr:has(td)").click(
function () {
$(grid.rows[$(this).index()+1]).toggle();
}
但是,如果单击其中一个(现在可见的)隐藏行,此表还会隐藏可见行。 我希望click函数仅适用于特定的可见行。目前我所有的隐形行都有“偶数”类,所以我想我可以根据它限制点击。但是,我似乎无法找到解释为我的函数的语法。我该怎么做呢?而且,更重要的是,有更好的方法来解决这个问题吗?
答案 0 :(得分:2)
使用下一个:
$(".tbl tr:has(td)").click(
function () {
$(this).next().toggle();
}
);
如果您有奇数或偶数的特定选择器:
$(".tbl tr.odd").click(
function () {
$(this).next().toggle();
}
);
但我认为我的答案的主要帮助是使用next()来获取下一行,而不是你正在进行的索引过程。
答案 1 :(得分:1)
var grid = $('#BillabilityResults');
$(".tbl tr:visible").click(
function () {
$(this).next('tr').toggle();
});
答案 2 :(得分:1)
使用NOT函数忽略EVEN tr元素:
<table class="tbl">
<tr><td>one</td></tr>
<tr class="even" style="display:none"><td>two</td></tr>
<tr><td>three</td></tr>
<tr class="even" style="display:none"><td>four</td></tr>
</table>
$(".tbl tr:has(td)").not("tr.even").click(function() {
alert("Click triggered.");
$(this).next("tr").show();
});
答案 3 :(得分:1)
我猜你可以在调用你的切换代码之前用模数运算符检查偶数/奇数行:
function() { // your anonymous function
if (rowNumber % 2 == 0) { // only even rows get through here
// toggle code here
}
}
我希望它有所帮助。