我通过转义文本短语来创建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?
答案 0 :(得分:7)
%
在ID中无效。您仅限于字母数字字符_
,-
':'和.
,但不使用后三者是明智的,因为它们不能用于CSS选择器。
我真的不知道你为什么要用户输入你的id。好像很糟糕的设计。如果您确实想这样做,只需删除任何无效字符或用下划线替换它。
答案 1 :(得分:1)
尝试用下划线替换空格(使用正则表达式)。
答案 2 :(得分:1)
尝试删除文本中的空格。
答案 3 :(得分:0)
根据W3C specification,您无法在ID中使用'%'。
ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)
答案 4 :(得分:0)
在您的情况下,我认为最好剥去任何特殊字符,并用破折号或下划线替换所有空格。