选项1:
<div class="box">I'm a big box</div>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$('</div>').append("<div class='newbox'>I'm new box by prepend</div>");
</script>
选项2:
<div class="box">I'm a big box</div>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$('.box').append("<div class='newbox'>I'm new box by prepend</div>");
</script>
问题:
为什么option1不起作用,option2工作?
答案 0 :(得分:2)
第一个选项中的选择器是错误的。使用标记选择器时,不需要包含打开的<
和右括号>
,只需在字符串文字中使用标记的名称。
<div class="box">I'm a big box</div>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$('div').append("<div class='newbox'>I'm new box by prepend</div>");
</script>
第二个选项有效,因为您使用了正确的类选择器.box
。
如果需要,您可以将这两种方法结合起来。
$('div.box').append("<div class='newbox'>I'm new box by prepend</div>");
答案 1 :(得分:2)
当你向jQuery传递一个以"<"
开头并以">"
结尾的字符串时,jQuery会将其解释为HTML并尝试创建一个DOM片段。此片段未添加到DOM中,因此您只是无处追加。
您可能想要选择页面中已有的div:
$('div').append("<div class='newbox'>I'm new box by prepend</div>");
答案 2 :(得分:0)
您也可以尝试使用
$('div').append("<div class='newbox'>I'm new box by prepend</div>");
答案 3 :(得分:0)
尝试将选择器从$('</div>')
更改为$('<div>')
<div class="box">I'm a big box</div>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$('<div>').append("<div class='newbox'>I'm new box by prepend</div>");
</script>