首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery排除选择器中具有特定类的元素

jQuery排除选择器中具有特定类的元素
EN

Stack Overflow用户
提问于 2010-06-10 22:03:46
回答 3查看 122.3K关注 0票数 143

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

我想在一个新的标签中打开某些链接,而忽略具有特定类的链接(在你问之前,我不能把类放在我试图捕捉的链接上,因为它们来自CMS)。

我想排除具有"button""generic_link"类的链接

我试过了:

代码语言:javascript
复制
$(".content_box a[class!=button]").click(function (e) {
    e.preventDefault();     
    window.open($(this).attr('href'));
});

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-10 22:12:07

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

代码语言:javascript
复制
$(".content_box a").not(".button")

代码语言:javascript
复制
$(".content_box a:not('.button')")

这两种方法之间几乎没有区别,除了.not()更具可读性(尤其是在链接的情况下),而:not()的速度更快一些。有关差异的更多信息,请参阅this Stack Overflow answer

票数 291
EN

Stack Overflow用户

发布于 2010-06-10 22:11:44

使用这个..

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

票数 26
EN

Stack Overflow用户

发布于 2018-07-26 04:21:57

为了添加一些今天对我有帮助的信息,还可以将jQuery对象/this传递给.not()选择器。

代码语言:javascript
复制
$(document).ready(function(){
    $(".navitem").click(function(){
        $(".navitem").removeClass("active");
        $(".navitem").not($(this)).addClass("active");
    });
});
代码语言:javascript
复制
.navitem
{
    width: 100px;
    background: red;
    color: white;
    display: inline-block;
    position: relative;
    text-align: center;
}
.navitem.active
{
    background:green;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="navitem">Home</div>
<div class="navitem">About</div>
<div class="navitem">Pricing</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3015103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档