试图创建div> ul附jquery附加

时间:2016-04-23 20:21:02

标签: jquery append

这段代码在.tile div之外创建了一个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 个答案:

答案 0 :(得分:1)

div与班级#34;标题&#34;正在使用自我结束标记<div ... />

改为

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

或者做这样的事情

var content = $('<div>')
    .addClass('title')
    .append(
        $('<ul>').addClass('layer')
    );
$(container).append(content);

答案 1 :(得分:1)

您可以通过以下方式追加元素:

$('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

答案 2 :(得分:0)

您正在使用斜杠关闭.title元素。这是“简写”,告诉HTML您希望在创建元素后立即关闭该元素。请尝试以下方法。

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

我在寻找这个问题的答案时发现的有趣的事情是document.write没有遭受这种行为,所以也许这与jQuery如何解析HTML与你的浏览器/解释器有关。

答案 3 :(得分:0)

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

$(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);

答案 4 :(得分:0)

非常简单

尝试以下代码: -

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