首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery选择器排除逻辑不工作

JQuery选择器排除逻辑不工作
EN

Stack Overflow用户
提问于 2017-02-16 15:09:55
回答 2查看 42关注 0票数 0

我有许多元素,它们的href值分别是#-5、#slider-6、#slider-7等等。还有一些包含href值的其他元素,其中包含#,但模式不同。我想编写一个选择器逻辑,它只针对第二类元素,即那些在其href中包含了#的元素,而不是#滑块的组合元素。我就是这么写的:

代码语言:javascript
复制
$('a[href*=#]:not([href=#], [href=#slider])')

但是,这个逻辑似乎不符合#滑块排除逻辑。

我需要的是选择所有包含#的标记,但不包括以下内容:

  • 只包含#,以及
  • 包含#,后面跟着单词滑块
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-16 15:23:16

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

票数 2
EN

Stack Overflow用户

发布于 2017-02-16 15:19:59

与其尝试实现一些奇怪的CSS选择器,不如使用.filter()函数来筛选元素。

代码语言:javascript
复制
$(document).ready(function() {
  $('a')
    .filter(function() {
      return $(this).attr('href').indexOf('#slider-') == 0;
    })
    .addClass('selected');
})
代码语言:javascript
复制
a {
  text-decoration: none;
  color: inherit;
}

.selected {
  border-bottom: 1px solid red;
}
代码语言:javascript
复制
<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>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42277729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档