代码之家  ›  专栏  ›  技术社区  ›  KallDrexx

jquery append()未按预期追加

  •  1
  • KallDrexx  · 技术社区  · 14 年前

    所以我有以下部分

    <div id="object_list">
    

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

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

    代码运行后,对象列表如下

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

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

    2 回复  |  直到 13 年前
        1
  •  1
  •   Scott Christopherson    14 年前

    append不仅仅是附加标签,它实际上是附加元素。在这种情况下,您希望将列表项附加到一个未排序的列表中,该列表项将附加到您的DIV中。

    做:

    $('<ul>').appendTo('#object_list').append(list.contents());
    
        2
  •  3
  •   BradBrening    14 年前

    问题是,当您打算将项目附加到列表本身时,您会一直附加到“对象列表”。(顺便说一下,您也不会关闭您的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);