jQuery – 多个:不是select器
我试图瞄准不是以'#'开头的页面范围的链接,不包括内嵌的JavaScript,但我有问题搞清楚如何正确地构造select器。
基于我已经search了多个select器这应该工作,两个select器独立工作,只是不在一起!
$('a:not([href*=javascript]), a:not([href^=#])') .each(function(){...
尝试使用
$('a:not([href*=javascript]):not([href^=#])') ...
你也可以尝试:
$('a').not('[href^=#],[href*=javascript]')
正如jQuery中所示:在多个select器中:not()? ,这是做到这一点的正确方法:
$( 'a:not([href*=javascript],[href^=#])' )
如果你已经有了你的select器来否定variables,不要忘了把逗号放在逗号周围
var selOne = '[href*=javascript]'; var selTwo = '[href^=#]'; $('a:not(' + selOne + ',' + selTwo + ')')
我承认代码有点混乱,但它有一个优势,你可以做这样的事情:
var selOne = '[href*=javascript], [href^=#]'; var selTwo = '.anotherSelector, .andAnother, .andSoOn'; $('a:not(' + selOne + ',' + selTwo + ')')
这是有用的,当你需要组合select器出于某种原因,即。 在代码中的其他地方使用相同的select器组。
一个使用相同技术的现场示例
$('div:not(.rose-flower,.bus-vehicle)').css('color','red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="bus-vehicle">I am a bus</div> <div class="strawberry-fruit">I am a strawberry</div> <div class="rose-flower">I am a rose</div>