2012-08-27 30 views
1

我使用的是tabview,它是YUI3庫的一部分。CSS選擇元素基於href屬性中的片段標識符

的標記基本上是這樣的:

<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

適用於普通的CSS:http://jsfiddle.net/zb6su/2/ – Blender

回答

3

它使用相同的選擇器正常工作,但使用jQuery(fiddle)。

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

返回「foo」。 Same with CSS

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

看來這個問題是多與F21的火力發現者的a[href="#foo"]沒有使用。案件結案。

+0

剛剛在YUI試過了,它似乎也起作用了。我在FireFinder中經驗豐富,並且無法選擇它(必須是帶擴展名的bug)。一旦等待期結束,我會接受你的回答:) – F21

+0

你也應該更新你的答案,告訴訪問用戶,這是一個錯誤,而不是OP的代碼。 –