附加文本在div之外

时间:2013-08-01 15:38:57

标签: jquery

我有以下静态HTML:

<div id="divSlots"></div>

和一些jQuery:

success: function(data) {

if (data.d[0]) {

        $.each(data.d, function(index, data) {

            $("#divSlots").append("<div id='divSlot-" + data.id + "'>");
            $("#divSlots").append(data.time);
            $("#divSlots").append("</div>");

        });

为什么这给了我这个输出:

<div id="divSlots">
    <div id="divSlot-0"></div>
    09:00 
    <div id="divSlot-1"></div>
    09:30
</div>

而不是这个?

<div id="divSlots">
    <div id="divSlot-0">09:00</div>
    <div id="divSlot-1">09:30</div>
</div>

我在谷歌浏览器中得到此信息,不确定IE8 +

3 个答案:

答案 0 :(得分:2)

试试这段代码

当第一个追加"<div id='divSlot-" + data.id + "'>"时,浏览器将其显示为已满div,即自动关闭div标签。因此,如果您将所有内容附加到一个附加内容以使其更快更正确,则会更好。

$.each(data.d, function (index, data) {
    $("#divSlots").append("<div id='divSlot-" + data.id + "'>" + data.time + '</div>');
});

答案 1 :(得分:2)

你不能附加“半个div”可以这么说。您的浏览器显示完整的div,然后显示data.time,然后省略最后一个结束div。请改用:

$("#divSlots").append(
    '<div id="divSlot-' + data.id + '">' + data.time + '</div>'
);

答案 2 :(得分:1)

$("#divSlots").append('<div id="divSlot-' + data.id + '">' + data.time + '</div>');