从列表中选择项目,根据索引排除多个项目

时间:2013-02-13 11:18:06

标签: javascript jquery jquery-selectors traversal

我想要一个项目列表(每个tr中的td)除了某些列,比如第2和第3列。怎么做到呢?我可以装饰特定的td以使用某些属性排除,或者我可以仅根据索引排除它们。 下面的示例删除了我想要的项目,虽然我实际上想要附加到鼠标悬停事件但是为了简单而省略了。

这是脚本获取除最后2列之外的所有列(示例不删除最后2列):

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

我试过这个从remove中排除第二个和第三个,但它不喜欢逗号分隔的选择器(我以为你可以像这样做一个多选择器?):

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

此处的示例位于jsfiddle

编辑:我正在使用javascript 1.8.3

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

试试以下内容,

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

我希望它会对你有所帮助。