CSS选择基于href属性中的片段标识符的元素

时间:2012-08-27 05:51:00

标签: css css-selectors fragment-identifier

我使用的是tabview,它是YUI3库的一部分。

标记基本上是这样的:

<div id="demo" class="yui3-tabview-content">
  <ul class="yui3-tabview-list">
    <li class="yui3-tab yui3-widget yui3-tab-selected">
      <a href="#foo" class="yui3-tab-label yui3-tab-content" tabindex="0">foo</a>
    </li>
  </ul>
  <div class="yui3-tabview-panel">
    <div id="foo" class="yui3-tab-panel yui3-tab-panel-selected">
      <p>
        foo content
      </p>
    </div>
  </div>
</div>

标记的小提琴:http://jsfiddle.net/zb6su/

问题:我正在编写一些javascript代码,并希望选择tabview-panel给出的标签。假设在这种情况下我能够获得id foo。我想选择a[href=#foo]

标签

问题是a[href=#foo]根本不起作用,因为#用于选择ID。我也试过a[href="#foo"]无济于事。是否有css选择器根据href属性中的URL片段选择链接?

我知道使用javascript,我可以迭代所有节点并检查href属性,但我更愿意尽可能使用CSS选择器。


更新:选择器确实有效。看起来它是FireFinder中的一个错误(我用来测试选择器的扩展名)。

1 个答案:

答案 0 :(得分:3)

使用相同的选择器可以正常工作,但使用jQuery(fiddle)。

$('a[href="#foo"]').text();

返回“foo”。 Same with CSS

a[href="#foo"] {
    color:red;
}

似乎问题更多的是F21的FireFinder,而不是a[href="#foo"]的使用。案件结案。