Jquery附加不起作用

时间:2014-03-11 15:44:48

标签: jquery html append

我正在尝试附加到html元素,但出于某种原因,当元素的id名称中包含[0]时,它似乎不允许我这样做。

HTML

<div id="stuff[0]">
    <div id="tag">blah</div>
</div>
<div id="stuff[1]">
    <div id="tag">blah</div>
</div>

JQUERY

var id = "#" + "stuff[0]";
$(id).append("<p>HI</p>");

当我运行代码时它不会附加?解决方法是什么?

代码也可以在fiddle

中找到

3 个答案:

答案 0 :(得分:3)

您可以使用两个反斜杠转义方括号

var id = "#" + "stuff\\[0\\]";
$(id).append("<p>HI</p>");

答案 1 :(得分:2)

当您在ID中使用方括号时,您应该在jQuery中使用方括号来转义它们 您可以在此处阅读有关在选择器中使用特殊字符的更多信息(第二段):http://api.jquery.com/category/selectors/

这里我在JSFiddle上更新了你的代码:http://jsfiddle.net/Yye2L/7/

var id = "#" + "stuff\\[0\\]";
$(id).append("<p>HI</p>");

答案 2 :(得分:0)

方括号表示jQuery中的属性选择器。出于这个原因,你不应该使用方括号作为id的一部分。

如果必须,您可以使用不带括号的相同代码:

<div id="stuff0">
    <div id="tag">blah</div>
</div>
<div id="stuff1">
    <div id="tag">blah</div>
</div>


var id = "#" + "stuff0";
$(id).append("<p>HI</p>");

如果您不想更改可以使用的HTML:

var id = "#" + "stuff\\[0\\]";
$(id).append("<p>HI</p>");

这不是很优雅,但做得很好......