2012-11-07 27 views
0

我是jQuery中的新手,但我嘗試去學習它。 假設我得到了ID =「userForm:id」的輸入; 在javascript中我可以簡單的GET ID是:如何在jQuery中使用id輸入「:」

var id = document.getElementById("userForm:id"); 

在jQuery中我嘗試:

var id = $('#userForm:id'); 

但後來我得到錯誤:

Uncaught Error: Syntax error, unrecognized expression: unsupported 
pseudo: id 

回答

6

jQuery的想到了這個問題已經和您只需要轉義它,如jQuery docs中詳細說明,並在jQuery FAQ中詳細說明:

var id = $('#userForm\\:id'); 

週期和其他字符valid ID characters也是如此,但具有特殊的CSS含義。

作爲風格的一般問題,我個人不鼓勵你在HTML id屬性中使用特殊字符(即除字母數字,下劃線和斜線之外的任何字符),但是爲什麼不能做到這一點當然沒有技術原因。

3

嘗試

var id = $('#userForm\\:id'); 

DEMO

2

你也可以我們e:

$("form[id$='userForm:id']") 

如果您的項目是一種形式offcourse ...否則你應該改變方括號前面的形式。
這段代碼會看在你的頁面的表單的每個ID並檢查它是否結束窗體:ID
見:http://api.jquery.com/attribute-ends-with-selector/

我沒有測試過未來一段代碼,但我想它應該工作:

$("form[id='userForm:id']") 

這應該只選擇與ID用戶窗體形式:ID

+0

爲什麼這樣做時,簡單地逃避':'字符可以做什麼?我相信你的方式可能需要更多的DOM遍歷,具體取決於頁面中包含多少'form'元素。 – Sparky

+0

@ Sparky672我同意,這只是解決問題的另一種方式。但是這個解決方案不太適合其他答案。 (但如果其他答案不會出於某種奇怪的原因...) – Jozzeh

+0

我會給你+1支持文檔的格式良好的答案,但-1沒有任何理由推薦一些不理想的東西這樣做。淨0。 – Sparky

相關問題