2017-02-16 150 views
0

我有#滑塊5#滑塊6#滑塊7等的HREF值一堆元件。還有一堆其他元素與href值包含但在一個不同的模式。我想寫的是隻針對第二類元素選擇邏輯,即那些含有在他們HREF但不是組合#slider。這是我寫的:jQuery選擇排除邏輯不工作

$('a[href*=#]:not([href=#], [href=#slider])') 

然而,這種邏輯似乎並沒有兌現#slider排除邏輯。

我需要的是爲它挑選所有標記,包含,但不包括以下:

  • 包含,並
  • 包含後跟單詞滑塊
+1

不是告訴你有一個「分子束」和「一堆元素」的,請張貼[MCVE] – j08691

+0

值在平等選擇器應該在引號https://api.jquery.com/attribute-equals-selector/ –

+0

感謝至少試圖幫助,菲爾。但是儘管引用了這個問題,問題仍然存在。 $('a [href * =「#」]:not([href =「#」],[href =「#slider」])') – TheLearner

回答

2

您可以使用選擇:$('a[href*="#"]:not([href="#"], [href^="#slider"])')

1

不是試圖實現一些奇怪的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>