在jquery中使用转义字符串作为html元素id

时间:2011-09-08 19:01:52

标签: jquery html

我通过转义文本短语来创建html元素ID,如下所示:

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

结果,我有一个带有id的span,如下所示:

<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/

5 个答案:

答案 0 :(得分:7)

%在ID中无效。您仅限于字母数字字符_-':'和.,但不使用后三者是明智的,因为它们不能用于CSS选择器。

我真的不知道你为什么要用户输入你的id。好像很糟糕的设计。如果您确实想这样做,只需删除任何无效字符或用下划线替换它。

答案 1 :(得分:1)

尝试用下划线替换空格(使用正则表达式)。

答案 2 :(得分:1)

尝试删除文本中的空格。

答案 3 :(得分:0)

根据W3C specification,您无法在ID中使用'%'。

  

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)

答案 4 :(得分:0)

在您的情况下,我认为最好剥去任何特殊字符,并用破折号或下划线替换所有空格。