0

这是我想在div's中添加的字符串id

var str = "abcs's ah js";
$("div").append("<div id=" + str + ">JKL</div>");

当它渲染时,它看起来像这样:

<div id="abc" ah="" js="" s></div>
4

4 回答 4

4

一般来说,您可以让 jQuery 以这种方式处理属性转义:

var str = "abcs's ah js",
$newdiv = $('<div>', {id: str});

$("div").append($newdiv);

请注意,尽管这可能有效,但根据HTML4HTML5关于有效标识符名称的标准,禁止使用空格,并且单引号(以及其他)在 HTML4 中不起作用。

于 2013-05-27T06:25:31.830 回答
4

带有引号和空格的 ID无效

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

删除无效字符,它将起作用。

更新(感谢@Joachim Isaksson):在HTML5 中,ID 属性允许使用引号,在这种情况下,您可以参考@Jack的答案并让 jQuery 处理属性转义。

于 2013-05-27T06:27:49.917 回答
2

str'引号,它不是属性的有效值id,直到 HTML5 .. 它'在 HTML 5 中是 () 有效的。

请注意 in中的空格str。这在 html5 和 html4 中也无效。

HTML5 id 属性

用于将您的str值添加到 id 属性。试试下面的代码

 $("div").append('<div id="' + str + '">JKL</div>');

您可以使用属性选择器选择它们,例如:$('[id="'+str+'"]')[0]。我已将其添加到jsfiddle中。

@杰克感谢您的评论

于 2013-05-27T06:23:02.323 回答
-2

您可以通过使用上述答案来做到这一点,但空格字符对于 ID 属性无效。

于 2013-05-27T06:33:31.063 回答