我有#滑块5,#滑块6,#滑块7等的HREF值一堆元件。还有一堆其他元素与href值包含#但在一个不同的模式。我想写的是只针对第二类元素选择逻辑,即那些含有#在他们HREF但不是组合#slider。这是我写的:jQuery选择排除逻辑不工作
$('a[href*=#]:not([href=#], [href=#slider])')
然而,这种逻辑似乎并没有兑现#slider排除逻辑。
我需要的是为它挑选所有标记,包含#,但不包括以下:
- 包含只#,并
- 包含#后跟单词滑块
我有#滑块5,#滑块6,#滑块7等的HREF值一堆元件。还有一堆其他元素与href值包含#但在一个不同的模式。我想写的是只针对第二类元素选择逻辑,即那些含有#在他们HREF但不是组合#slider。这是我写的:jQuery选择排除逻辑不工作
$('a[href*=#]:not([href=#], [href=#slider])')
然而,这种逻辑似乎并没有兑现#slider排除逻辑。
我需要的是为它挑选所有标记,包含#,但不包括以下:
您可以使用选择:$('a[href*="#"]:not([href="#"], [href^="#slider"])')
不是试图实现一些奇怪的CSS选择器,而是使用.filter()
函数来过滤元素。
$(document).ready(function() {
$('a')
.filter(function() {
return $(this).attr('href').indexOf('#slider-') == 0;
})
.addClass('selected');
})
a {
text-decoration: none;
color: inherit;
}
.selected {
border-bottom: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#slider-1">Slider-1</a><br/>
<a href="#slider-2">Slider-2</a><br/>
<a href="#slider">Slider</a><br/>
<a href="#">#</a>
不是告诉你有一个“分子束”和“一堆元素”的,请张贴[MCVE] – j08691
值在平等选择器应该在引号https://api.jquery.com/attribute-equals-selector/ –
感谢至少试图帮助,菲尔。但是尽管引用了这个问题,问题仍然存在。 $('a [href * =“#”]:not([href =“#”],[href =“#slider”])') – TheLearner