jquery中的append()方法问题

时间:2013-06-24 09:04:24

标签: jquery jquery-selectors

选项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工作?

4 个答案:

答案 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>