簡體   English   中英

在javascript中選擇特定表格元素的最聰明方法是什么?

[英]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元素:

http://jsfiddle.net/7AHmh/

<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM