2011-09-08 75 views
3

我被轉義文本短語創建HTML元素的ID,如下所示:使用轉義字符串,如jQuery的HTML元素ID

var elementid=escape('some term entered by user'); 

其結果是,我有一個跨度的ID如下:

<span class="radio" id="selectTimescalesOne%20hello%20there" style="background-position: 0px 0px; "></span> 

如果我嘗試這樣的:

$('#selectTimescalesOne%20hello%20there').html('some new stuff'); 

然後跨度沒有更新。使用轉義字符串作爲id s有什麼問題嗎?

演示:http://jsfiddle.net/uSwEJ/

+1

可能重複[什麼是HTML中的id屬性的有效值?](http://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in- html) –

+0

不幸的是,它看起來像你需要用其他東西來替換空格,例如下劃線'_'。 –

回答

7

%在ID中無效。您僅限於字母數字字符_,-':'和.,但明智地不使用後三者,因爲它們不能用於CSS選擇器。

我真的不知道你爲什麼要用戶輸入你的ID。看起來像糟糕的設計。如果您確實想要這樣做,只需刪除任何無效字符或將其替換爲下劃線。

1

嘗試更換空白(使用一個正則表達式)以下劃線。

1

嘗試刪除文本中的空格。

0

根據W3C specification,您不能在ID中使用'%'。

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

0

就你而言,我認爲最好是去掉任何特殊字符並用短劃線替換所有空格或下劃線。

相關問題