我對JavaScript有點新,並且在這裏碰到了一面磚牆。jQuery ID選擇器返回空白數組當我盯着元素
我有一個基於文件名的唯一ID構建的jsTree。例如,
<a id="node_:Folder4" href="#">Folder4</a>
運行選擇器,用於
$("#node_:Folder4")
被返回[]。這是我看到的確切問題的圖片。有什麼想法嗎?
我對JavaScript有點新,並且在這裏碰到了一面磚牆。jQuery ID選擇器返回空白數組當我盯着元素
我有一個基於文件名的唯一ID構建的jsTree。例如,
<a id="node_:Folder4" href="#">Folder4</a>
運行選擇器,用於
$("#node_:Folder4")
被返回[]。這是我看到的確切問題的圖片。有什麼想法嗎?
你需要躲避冒號:
$('#node_\\:Folder4')
不知道爲什麼,但我在這裏找到這個文件,上面寫着
ID和名稱標記必須開始([A-Za-z]),可以是 ,後跟任意數量的字母,數字([0-9]),連字符( 「 - 」), 下劃線(「_」),冒號(「:」)和句點(「。」)。
http://www.w3.org/TR/REC-html40/types.html#type-name
我可能看不推薦使用的文件,但肯定的,儘量避免在屬性中使用特殊字符值
你是絕對正確的。 HTML規範規定,你可以在你的ID中使用幾乎任何字符,但爲了引用它,必須轉義「特殊」字符,以便從字面上理解。這在選擇器部分的jQuery文檔中也提到了。 – 2012-04-03 03:17:48
啊優秀,這似乎是正常工作。非常感謝! – MrDoom 2012-04-03 03:18:48
你需要轉義特殊字符 - 在這種情況下,結腸。
$("#node_\\:Folder4")
也許它不喜歡的結腸。選擇器在多個位置使用冒號 – Murtnowski 2012-04-03 03:03:52
冒號用於僞類,並且在ID中無效。 – josh3736 2012-04-03 03:08:05
無論是否允許轉義,我都無法想到絕對需要冒號的強制性理由。跳過冒號並開心。 ;-) – 2012-04-03 03:09:19