2012-05-28 74 views
1

有,我可以同時喜歡選擇多個第n個孩子的一種方式:jQuery的選擇和排除多個第n個孩子的

$("#table").find("tr > :not(td:nth-child(1,3,5))"); 

不工作

我想選擇所有的TD每行但不是列1,3,5(這可以是任何組合)。

有沒有辦法做到這一點?我無法分配類名。

感謝您的任何幫助!

UPDATE:

我想在一個表中的所有行進行搜索,但不包括某些列。

我現在有這樣的代碼:

elem.keyup(function() { 

    $(options.table).find("tr").hide(); 
    var data = this.value.split(" "); 
    var jo = $(options.table).find("tr > :not(td:nth-child("+cols+"))"); 

    $.each(data, function(i, v){ 

    jo = jo.filter(":containsIgnoreCase('"+v+"')"); 

    }); 

    jo.parent().show(); 
    }); 

它工作時,我傳遞一個值,但我要排除多個列。

感謝

回答

1

從你的榜樣,它看起來像你想排除奇數。嘗試:

$("#table").find("tr > :not(td:nth-child(odd))"); 

雖然,選擇偶數可能更有效。

$("#table").find("tr > td:nth-child(even)"); 

你也可以在nth-child中使用公式。 See this link for more detail.

好,如下面的意見/澄清這個問題,這裏是另一種解決方案。

$("#table").find("tr > td").filter(function(index){ 
    return index == 1 || index == 2 || index == 5; 
}); 
+0

謝謝,但不,這只是一個壞例子。它可以是第1,7,8列或4,6 ... – dacami

+0

你如何確定哪些列將被排除?或者你每次都硬編碼? – ahren

+0

這些列是硬編碼的,我將用它作爲許多不同表的內聯表搜索,並且總是必須排除一些列。..我的例子工作時,我只有一列排除,但我不會爲多個上面編輯的列 – dacami