2011-11-02 17 views
3

對這個基本問題抱歉,但我被noob難住。使用jQuery變量作爲href選擇器

下面的代碼工作正常。我想要做的是將散列存儲爲一個變量,並在具有相同散列/目標ID的頁面上定位href(例如鏈接處於打開狀態的頁面= page.php#options,鏈接= <a href="#options">),將類添加到特定鏈接。

例如。而不是#options我希望它是什麼(如果有的話)存儲在變量hash。我已經嘗試了很多組合$('[href="hash"]'),$('a[href=hash]')等,但我的jquery不是那麼流利,所以我不確定我在哪裏犯錯誤。

我唯一能想到的是,存儲的哈希可能不包含目標href所要求的「#」,但這可能是一個延伸。

$(document).ready(function() { 

    var hash = window.location.hash; 

    if(hash != "") { 
     $('[href="#options"]').addClass("selected"); 
    }  
}); 

我希望這是有道理的,任何見解將不勝感激。 在此先感謝。

回答

3

$('[href =「'+ hash +'」]')。addClass(「selected」);

:-)

+0

美麗,謝謝。現在我明白了,我覺得自己很沮喪。 – whist

+0

如果可能,還有一個問題。這適用於webkit瀏覽器,但在Firefox中,頁面會滾動到隱藏的div所在的位置,而不是它現在所在的位置(位於指定部分的頂部)。還有什麼我失蹤?再次提前感謝。 '$(document).ready(function(){ var tabContainers = $('div.tabs> div'); var hash = window.location.hash; if(hash!=「」){ tabContainers .hide().filter(hash).show(); $('div.tabs ul.tabNavigation a')。removeClass(「selected」); $('[href =「'+ hash +'」] ').addClass(「selected」); } });' – whist

+0

不確定是否相關,但您的'.filter(散列)'看起來很奇怪。哈希變量包含哈希字符串,它對於過濾函數沒有任何意義。你可能的意思是'.filter($('a [href =''+ hash'「'''')'),並且在控制檯中檢查代碼是否存在錯誤 – spacevillain