jQuery append()在id中的字符串连接

时间:2013-05-27 06:22:04

标签: javascript jquery html

以下是我要在div id中添加的字符串。

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

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

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

4 个答案:

答案 0 :(得分:4)

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

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

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

请注意,即使这可能有效,但根据HTML4HTML5关于有效标识符名称的标准,禁止使用空格,单引号(以及其他)不会在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中也无效。

HTML5 id attribute

用于将str值添加到id属性。尝试以下代码

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

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

@jack感谢您的评论

答案 3 :(得分:-2)

您可以使用上述答案执行此操作,但空格字符对ID属性无效。