jQuery在selector中排除了某些类的元素

Tit*_*tan 116 jquery

我想在jQuery中为某些锚标签设置一个单击事件触发器.

我想在新选项卡中打开某些链接,而忽略具有某个类的链接(在您要求我不能将类放在我试图捕获的链接上,因为它们来自CMS).

我想要排除类"button"OR的链接"generic_link"

我试过了:

$(".content_box a[class!=button]").click(function (e) {
    e.preventDefault();     
    window.open($(this).attr('href'));
});
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,我如何"generic_link"在排除中包含OR语句?

Pra*_*ana 244

您可以使用.not()方法:

$(".content_box a").not(".button")
Run Code Online (Sandbox Code Playgroud)

或者,您也可以使用:not()选择器:

$(".content_box a:not('.button')")
Run Code Online (Sandbox Code Playgroud)

两种方法之间几乎没有区别,除了.not()更具可读性(特别是在链接时)并且:not()速度非常快.有关差异的更多信息,请参阅此Stack Overflow答案.

  • 所以我可以这样做: $(".content_box a").not(".button").not(".generic_link").click(function (e)...? (2认同)

sus*_*ani 26

用这个..

$(".content_box a:not('.button')")