Jquery append()没有按预期追加

时间:2010-05-16 02:50:38

标签: jquery append

所以我有以下div

<div id="object_list">

我想在其中附加一个列表和项目。所以我运行以下jquery

       $("#object_list").empty();
       $("#object_list").append('<ul');
       $("#object_list").append(list.contents());
       $("#object_list").append('</ul>');

该代码运行后,#object_list看起来像这样

<div id="object_list">
  <ul></ul>
  ...list.contents() elements
</div>

即使在调试之后,如果我再做一次$("#object_list").append('<ul>');,我得到的是<ul>之后的</ul>。为什么jquery没有附加到list.contents()之后的html,而是在它之前?

2 个答案:

答案 0 :(得分:3)

问题是,当您要将项目附加到列表本身时,您会继续附加到“object_list”。 (顺便说一下,你也没有关闭你的UL实例化标签)

尝试这样的事情:

var $list = $("<ul></ul>");
$list.append("<li>Something 1</li>");
$list.append("<li>Something 2</li>");
$list.append("<li>Something 3</li>");

$("#object_list").append($list);

答案 1 :(得分:1)

追加不只是附加标签,它实际上附加了元素。在您的情况下,您希望将列表项追加到一个无序列表中,该列表将附加到您的div。

执行:

$('<ul>').appendTo('#object_list').append(list.contents());