2012-05-28 75 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