2009-12-01 54 views
3

我使用以下,以確定當前選擇的(積極)的站點鏈接:jQuery的 - 語法錯誤

$(function(){ 
var path = location.pathname.substring(1); 
if (path) 
$('#sidebar_content a[@href$="' + path + '"]').attr('class', 'selected'); 
}); 

這似乎可以正確識別路徑,而且也產生一個錯誤

Error: uncaught exception: Syntax error, unrecognized expression: [@href$="clinics/ohs_north_carolina"]

頁面源不顯示該鏈接已添加類。

希望得到一些幫助。

謝謝。

回答

6

[@attr]樣式選擇器在jQuery 1.3中被刪除。刪除@符號,它應該工作。

$('#sidebar_content a[href$="' + path + '"]').attr('class', 'selected'); 

docs

Note: In jQuery 1.3 [@attr] style selectors were removed (they were previously deprecated in jQuery 1.2). Simply remove the '@' symbol from your selectors in order to make them work again.

+0

嗨艾曼,肯定解決了這個問題。謝謝。一個後續。此代碼是否將「class =」selected「屬性應用於錨標記?如果是這樣,它不會顯示在源代碼中。 謝謝, Forrest – fmz 2009-12-01 20:44:54

+0

嗨fmz,最好使用'.addClass('selected')',因爲它不覆蓋現有的類。此外,瀏覽器的「查看源代碼」窗口中通常不會顯示對DOM樹的JavaScript更改。 – 2009-12-01 21:31:43

+0

嗨艾曼,我感謝你的幫助。我試圖找出一直困擾着我好幾天的導航問題。我有一個需要解決的手風琴導航。讓它在一個層面上工作,我可以突出顯示活動鏈接,但它目前是手動設置的。我想動態設置它,這看起來很有希望,但似乎缺乏一些東西。我很樂意打開另一個線索,但我真正需要的是一個通過它的機會。你能幫我嗎? – fmz 2009-12-01 22:03:38