【问题标题】:What does "a[href*=#]:not([href=#])" code mean?“a[href*=#]:not([href=#])”代码是什么意思?
【发布时间】:2014-01-23 17:06:46
【问题描述】:

我没看清楚这段代码是什么意思?

a[href*=#]:not([href=#])

谢谢!

【问题讨论】:

  • 但它看起来想匹配 href something =# 其中“something”不能是空字符串。

标签: html css css-selectors


【解决方案1】:

简单地说:

a[href*=#] 

获取所有 包含 # in href 的锚点 (a)。

但是有:

:not([href=#])

排除具有完全等于#的href的锚。

例子:

<a href="#step1">yes</a>
<a href="page.php#step2">yes</a>
<a href="#">no</a> 

选择器获取前两个锚点,但排除了最后一个。

更多详情可以咨询attribute selectors chapter

【讨论】:

  • 谢谢!我在使用 Bootstrap 3 和 Scolling Back to Top 的面板中有问题:learningjquery.com/2007/10/…
  • 那个问题和答案让我很开心,谢谢
  • 我遇到的问题是使用 a[href*="#"]:not([href="#"] 作为选择器和使用 #myCarousel 来定位下一个/上一个按钮。我需要像 # 一样从选择中排除 #myCarousel。jquery 中的语法:$('a[href*="#"]:not([href="#"],[href= "#myCarousel"])').click...
  • 我到处找这个*= 的东西。非常感谢!您是否偶然知道在哪里记录了此类内容,以帮助我深入了解 *= 之类的内容是如何成为事物的?
【解决方案2】:

以防万一有人遇到和我一样的问题和新版本的 jQuery: 解决方案不是使用a[href*=#]:not([href=#]),而是使用

使用

a[href*="#"]:not([href="#"])

这是 jQuery 2.2.4 以后的重大变化。

【讨论】:

  • ..或者像这样逃避它:a[href*=\\#]:not([href=\\#])
  • 好朋友!
【解决方案3】:

表示所有href属性包含'#'的元素,except那些href属性等于#的元素

【讨论】:

  • 真的是反卫星。干杯!
【解决方案4】:

That's a CSS3 selector 获取所有ahref 属性包含 #,但不只是由单个# 字符组成。

例如

匹配

<a href="#home">Home</a>
<a href="index.html#contact">Contact</a>

不匹配

<a href="#">Top</a>

【讨论】:

  • 不一定要以#开头,只要包含在属性的某处即可。
【解决方案5】:

它是一个 CSS 选择器,它匹配任何具有包含 # 字符的 href 属性的 a 元素,但不匹配仅具有 # 的锚标记。

例如,它将匹配:&lt;a href="#test"&gt;Test Anchor&lt;/a&gt;,但不匹配 &lt;a href="#"&gt;Blank&lt;/a&gt;

【讨论】:

    猜你喜欢
    • 2014-07-28
    • 2011-03-10
    • 2020-05-08
    • 2015-01-03
    • 2013-11-18
    • 2018-09-17
    • 1970-01-01
    • 2018-12-27
    • 2018-07-11
    相关资源
    最近更新 更多