【发布时间】:2018-07-13 23:06:01
【问题描述】:
我正在使用现有的 jQuery(版本 3.2.1)函数:
$('#example').on('click', 'tbody td:not(:first-child)',
function (e) {
// do stuff
});
在这种情况下,function(e) 仅在 TD 不是该行的第一列时才会起作用。
如果我需要添加更多的非条件(恰好是一个至少有 5 个这样的列的表),该函数会变得有点难看。
在测试中,我知道它有效,但必须有更好的方法来做到这一点。
$('#example').on('click', 'tbody td:not(:first-child):not(:nth-
child(2)):not(:nth-child(3))',
function (e) {
// do stuff
});
是否有更简洁的技术来指示选择器中的一组非条件?我在想我可以用一个函数替换选择器字符串,但我还没有看到使用中的示例,即使在jQuery website 上也是如此。
【问题讨论】:
-
:not(.excludeme) -
.excludme 是一个类?
-
好吧,
excludeme将是类名。 -
@KevinB -- 您应该将此作为答案发布。它很简单,而且效果很好。
-
知道这是一个迟到的答案,尽管为什么不简单地使用
tbody td:nth-child(n+4)...它将从第4项开始,并且比排除前3项更短/更简单...但是如果要使用 exclude 逻辑,这将给出相同的结果tbody td:not(:nth-child(-n+3))
标签: jquery css css-selectors