![](/img/trans.png)
[英]What is the smartest way to delay javascript process that need the DOM to be generated
[英]What's the smartest way to select specific table elements in javascript?
我有一張桌子上有隱藏的行,像這樣
-visible-
-invisible-
-visible-
-invisible-
當我單擊表格行時,我希望它顯示不可見的行。 目前,我有使用此功能:
var grid = $('#BillabilityResults');
$(".tbl tr:has(td)").click(
function () {
$(grid.rows[$(this).index()+1]).toggle();
}
但是,如果我單擊(現在可見的)隱藏行之一,此表也將隱藏可見行。 我希望click函數僅適用於特定的可見行。 目前,我所有不可見的行都具有“偶數”類,因此我認為可以基於此限制點擊次數。 但是,我似乎找不到語法來向我的函數解釋這一點。 我將如何去做? 而且,更重要的是,是否有更好的方法來解決這一問題?
使用下一個:
$(".tbl tr:has(td)").click(
function () {
$(this).next().toggle();
}
);
而且,如果您有奇數或偶數的特定選擇器:
$(".tbl tr.odd").click(
function () {
$(this).next().toggle();
}
);
但是我認為我的答案的主要幫助是使用next()來獲取下一行,而不是您正在執行的索引過程。
var grid = $('#BillabilityResults');
$(".tbl tr:visible").click(
function () {
$(this).next('tr').toggle();
});
使用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();
});
我猜您可以在調用切換代碼之前使用系數運算符檢查偶數/奇數行:
function() { // your anonymous function
if (rowNumber % 2 == 0) { // only even rows get through here
// toggle code here
}
}
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.