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

尝试使用jquery append创建div>ul

  •  1
  • user4973992  · 技术社区  · 8 年前

    这段代码在.tilediv之外创建了一个ul,但我需要在里面。

    $(container).append(
     '<div class="tile" />' + '<ul class="layer"></ul>' + '</div>'
    );
    
    RESULT:              
    <div class="tile"></div>
    <ul class="layer"></ul>
    
    TRYING TO GET:
    <div class="tile">
     <ul class="layer"></ul>
    </div>
    
    5 回复  |  直到 8 年前
        1
  •  1
  •   Dhiraj    8 年前

    类为“title”的div使用了一个自关闭标记 <div ... />

    改为这样做

    $(container).append(
     '<div class="tile">' + '<ul class="layer"></ul>' + '</div>'
    );
    

    或者做这样的事

    var content = $('<div>')
        .addClass('title')
        .append(
            $('<ul>').addClass('layer')
        );
    $(container).append(content);
    
        2
  •  1
  •   Iro    8 年前

    可以通过以下方式附加元素:

    $('container').append($("div").addClass("tile").append($('ul').addClass("layer")));
    

    您正在创建和添加一个元素,因此要知道您可以这样做:

    var tile = $("div")
                  .addClass("tile")
                  .append(
                      $('ul')
                      .addClass("layer")
                      .append($("li").text("first in list"))
                      .append($("li").text("second in list"))
                  );
    $('container').append(tile);
    

    See more examples in doc file

        3
  •  0
  •   megubyte    8 年前

    你正在关闭 .title 元素。这是一个“速记”,告诉HTML你想在元素创建后立即关闭它。请尝试以下操作。

    '<div class="title">' + '<ul class="layer"></ul>' + '</div>'
    

    在寻找这个问题的答案时,我发现了一件有趣的事 document.write 不会受到这种行为的影响,所以这可能与jQuery解析HTML与浏览器/解释器的方式有关。

        4
  •  0
  •   prashant.php    8 年前

    非常简单

    尝试以下代码一次:-

    $(container).append('<div class="tile"><ul class="layer"></ul></div>');
    
        5
  •  0
  •   gaetanoM    8 年前

    获得结果的另一种方法是:

    $(container).append('<div class="tile" />').children('.tile').append('<ul class="layer"/>');
    

    或者您可以使用:

    $(container).append(function(index, html) {
        return $('<div class="tile" />').append('<ul class="layer"/>');
    });
    

    或者:

    var eleToAppend = $('<div class="tile" />').append('<ul class="layer"/>');
    $(container).append(eleToAppend);