2012-04-03 92 views
0

我對JavaScript有點新,並且在這裏碰到了一面磚牆。jQuery ID選擇器返回空白數組當我盯着元素

我有一個基於文件名的唯一ID構建的jsTree。例如,

<a id="node_:Folder4" href="#">Folder4</a> 

運行選擇器,用於

$("#node_:Folder4") 

被返回[]。這是我看到的確切問題的圖片。有什麼想法嗎?

http://imgur.com/J9BaP

+2

也許它不喜歡的結腸。選擇器在多個位置使用冒號 – Murtnowski 2012-04-03 03:03:52

+0

冒號用於僞類,並且在ID中無效。 – josh3736 2012-04-03 03:08:05

+0

無論是否允許轉義,我都無法想到絕對需要冒號的強制性理由。跳過冒號並開心。 ;-) – 2012-04-03 03:09:19

回答

3

你需要躲避冒號:

http://jsfiddle.net/MZA3b/1/

$('#node_\\:Folder4') 

不知道爲什麼,但我在這裏找到這個文件,上面寫着

ID和名稱標記必須開始([A-Za-z]),可以是 ,後跟任意數量的字母,數字([0-9]),連字符( 「 - 」), 下劃線(「_」),冒號(「:」)和句點(「。」)。

http://www.w3.org/TR/REC-html40/types.html#type-name

我可能看不推薦使用的文件,但肯定的,儘量避免在屬性中使用特殊字符值

+0

你是絕對正確的。 HTML規範規定,你可以在你的ID中使用幾乎任何字符,但爲了引用它,必須轉義「特殊」字符,以便從字面上理解。這在選擇器部分的jQuery文檔中也提到了。 – 2012-04-03 03:17:48

+0

啊優秀,這似乎是正常工作。非常感謝! – MrDoom 2012-04-03 03:18:48

2

你需要轉義特殊字符 - 在這種情況下,結腸。

$("#node_\\:Folder4") 
相關問題