我想在jQuery中为某些锚标签设置一个单击事件触发器。
我想在新选项卡中打开某些链接,而忽略具有某个类的链接(在您要求我不能将类放在我试图捕获的链接上之前,因为它们来自CMS)。
我想排除课程 "button"
或 "generic_link"
我试过了:
$(".content_box a[class!=button]").click(function (e) {
e.preventDefault();
window.open($(this).attr('href'));
});
但这似乎不起作用,我如何在排除中包含 "generic_link"
的OR语句?
答案 0 :(得分:233)
您可以使用.not()方法:
$(".content_box a").not(".button")
或者,您也可以使用:not()选择器:
$(".content_box a:not('.button')")
两种方法之间几乎没有区别,除了.not()
更具可读性(特别是链接时),:not()
非常快。有关差异的详细信息,请参阅this Stack Overflow answer。
答案 1 :(得分:25)
使用此.. ..
$(".content_box a:not('.button')")
答案 2 :(得分:2)
要添加一些今天对我有帮助的信息,还可以将jQuery对象/ this
传递到.not()选择器中。
$(document).ready(function(){
$(".navitem").click(function(){
$(".navitem").removeClass("active");
$(".navitem").not($(this)).addClass("active");
});
});
.navitem
{
width: 100px;
background: red;
color: white;
display: inline-block;
position: relative;
text-align: center;
}
.navitem.active
{
background:green;
}
<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>
上面的示例可以简化,但是希望显示this
选择器中not()
的用法。