2013-02-13 65 views
2

)我想要一个项目列表(每个tr中的td),除了某些列,比如说第2列和第3列。如何做呢?我可以修饰特定的td以排除某些属性,或者我可以仅基于索引排除它们。 下面的示例删除了我想要的项目,但我实际上想要附加到鼠标悬停事件,但为简单起见而省略。从列表中选择不包含多个项目的项目(基于索引

这里是脚本中获取的所有列,除了最后2列(例如不排除最后2):

$('table').find("tr td:not(:nth-last-child(-n+2))").remove(); 

我想这排除删除第二和第三,但它不喜欢的逗号分隔的选择(我想你可以做一个多选择这样吗?):

$('table').find("tr td:not(:nth-last-child(2),:nth-last-child(3))").remove(); 

下面的例子是jsfiddle

编辑:我使用JavaScript 1.8.3

+1

你正在使用哪个jQuery版本?它工作正常jQuery 1.9.1 – 2013-02-13 11:24:26

+0

很抱歉忘了添加,我使用1.8.3。在1.9.1中似乎工作正常,但在1.8.3中不起作用,如果你看看jQuery 1.9中添加了选择器的jsfiddle – GregS 2013-02-13 12:23:35

+0

。这就是为什么它适用于jQuery 1.9.1,但不适用于1.8.3 – 2013-02-13 13:05:47

回答

0
$('table').find("tr td").not(':nth-last-child(2), :nth-last-child(3)'); 
2

你的代码工作正常,您使用的是旧版本的jQuery(1.7)的。在jQuery 1.9中添加了The :nth-last-child selector。升级,它会正确运行。

+0

http://jsfiddle.net/m7U2m/2/ – nbrooks 2013-02-13 11:26:17

+1

啊是的,我给了你错误的链接抱歉,但罚款。我打开了5个以上的JSFiddle选项卡并复制了错误的选项卡。 – 2013-02-13 11:27:07

0

请尝试以下,

$('table').find("tr td::not(:eq(2)):not(:eq(1))"); 

我希望这会帮助你。

相关问题