以下是我要在div
id
中添加的字符串。
var str = "abcs's ah js";
$("div").append("<div id=" + str + ">JKL</div>");
当它渲染时它看起来像这样:
<div id="abc" ah="" js="" s></div>
答案 0 :(得分:4)
一般来说,你可以让jQuery以这种方式处理属性转义:
var str = "abcs's ah js",
$newdiv = $('<div>', {id: str});
$("div").append($newdiv);
请注意,即使这可能有效,但根据HTML4和HTML5关于有效标识符名称的标准,禁止使用空格,单引号(以及其他)不会在HTML4中工作。
答案 1 :(得分:4)
带有引号和空格的ID is not valid:
ID和NAME令牌必须以字母([A-Za-z])开头,可能是 后跟任意数量的字母,数字([0-9]),连字符(“ - ”), 下划线(“_”),冒号(“:”)和句点(“。”)。
删除无效字符,它会起作用。
更新(感谢@Joachim Isaksson):在HTML5 quotes are allowed for ID attribute中,在这种情况下,您可以参考@Jack's answer并让jQuery处理属性转义。
答案 2 :(得分:2)
str
引用'
,它不是id
属性的有效值,直到HTML5 ..它是('
)在HTML 5中有效。
请注意中
str
的空格。这在html5和html4中也无效。
用于将str
值添加到id属性。尝试以下代码
$("div").append('<div id="' + str + '">JKL</div>');
您可以使用属性选择器选择它们,例如:$('[id="'+str+'"]')[0]
。我在jsfiddle添加了它。
@jack感谢您的评论
答案 3 :(得分:-2)
您可以使用上述答案执行此操作,但空格字符对ID属性无效。