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

3
我正在通过转义文本短语来创建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 是否有问题?

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


1
可能是 HTML 中 id 属性的有效值是什么? 的重复。 - Pekka
很遗憾,看起来你需要用其他字符替换空格,例如下划线 _ - Pekka
5个回答

7

% 在id中是无效的。您只能使用字母数字字符、_-:.,尽管不建议使用后三者,因为它们不能用于CSS选择器。

我真的不知道为什么你想让用户输入你的id。这似乎是糟糕的设计。如果您确实想要这样做,只需删除任何无效字符或将其替换为下划线即可。


1

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


1

尝试删除文本中的空格。


0
根据W3C规范,您不能在ID中使用“%”符号。

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


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接