表头在jQuery中无法正确呈现?

时间:2014-10-03 19:19:28

标签: jquery ajax

我有一个ajax调用,它在我编辑一些值并单击提交后返回一些对象数组(这个形式是模态的,虽然我怀疑它与正在进行的事情有什么关系)。成功之后,我在成功属性中传递$ .ajax()回调函数,如下所示:

function updateTable(newArray){
    var tableBody = "";

    if (newArray) {

        tableBody =
                "<table>" +
                    "<thead>" +
                         "<tr>" +
                            "<th>Name</th>" +
                            "</tr>" +
                    "</thead>" +
                    "<tbody>";

        for (var i = 0; i < newArray.length; i++) {
            tableBody =
                    "<tr>" +
                    "<td>" + newArray[i].name + "<td>" +
                    "</tr>";
        }

        tableBody = tableBody + "</tbody></table>";
    } 

    $('#divTable').empty();
    $('#divTable').html(tableBody);
}

让我们说一开始就没有任何内容。我添加了一些值并获得newArray和表正在添加,但浏览器只显示tbody,没有标题,虽然我正在检查网站的源代码,并且有写的。这是为什么?它与渲染表头有连接吗?我不认为它在渲染中,因为我分配给一个<p>标记的文本也没有变化,尽管它也包含在源代码中代码。

我在.append()之后使用.empty()尝试过,但没有变化。

1 个答案:

答案 0 :(得分:2)

for循环不会附加到tableBody,它每次都会替换它。您需要在作业中使用+=而不是=

        for (var i = 0; i < newArray.length; i++) {
            tableBody +=
                    "<tr>" +
                    "<td>" + newArray[i].name + "<td>" +
                    "</tr>";
        }