我有以下结构:
<div class="container main-navigation">
<div class="col-md-9 text-left float-right collapse-navation">
<div class="navbar-collapse collapse navbar-inverse no-transition">
<ul class="nav navbar-nav navbar-right">
<li><a href="#about">Bla bla</a></li>
<li><a class="langSelection" href="#about">Bla bla</a></li>
我有一个调用的脚本:
$('.main-navigation')
.onePageNav({
scrollThreshold: 0.2,
scrollOffset: 79
});
问题是,我希望不要将此应用于所有锚点,但希望排除那些具有名为langSelection的类的人。
试过这个,但没有骰子:
$('.main-navigation').not(".langSelection")
.onePageNav({
scrollThreshold: 0.2,
scrollOffset: 79
});
我会更多地指定选择器但是,插件“onePageNav”似乎需要选择某个元素才能正常工作。
我可以请别人帮忙吗?
更新: 看来,我们实际上可以改变选择器。因此,任何确实改变选择器特异性的解决方案都可行。
答案 0 :(得分:1)
您可以使用jQuery&#39; :not
伪选择器直接排除某些元素。在这种情况下,您可以将类指定为非条件:
$("#match").on("click", function() {
$("a:not(.langSelection)").each(function(elem) {
$(this).css('color', 'green');
});
});
&#13;
a {
color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a>1</a>
<a class="langSelection">2</a>
<a>3</a>
<button id="match">Match!</button>
&#13;
答案 1 :(得分:0)
以下是一个示例:http://jsfiddle.net/gve76ryb/
<div class='container'>
<a>yes</a>
<a>yes</a>
<a>yes</a>
<a class='exclude'>no</a>
<a>yes</a>
</div>
脚本:
$(function(){
$(".container a:not(.exclude)").css({color: 'red'});
});
你可以使用:not css selecor或.not()jquery selector。
答案 2 :(得分:0)
$('.main-navigation a').not(".langSelection")
.onePageNav({
scrollThreshold: 0.2,
scrollOffset: 79
});
你只需要将锚(a)添加到你的选择器吗?