我有#滑塊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