我正在尝试附加到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
中找到答案 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>");
这不是很优雅,但做得很好......