jQuery - 如何从ajax调用添加表行?

时间:2018-03-13 11:54:01

标签: jquery ajax html-table

我有一个表应该从ajax调用的结果中填充。该表定义为:

<table id="resourceTable" class="table table-bordered table-hover">
    <thead>
        <tr>
            <th th:text="${propB}" />
            <th th:text="${text}" />
            <th th:text="${description}" />
        </tr>
    </thead>
    <tbody>
        // contents to be inserted here  
    </tbody>
</table>

如果我直接在浏览器上调用url,我会得到预期的结果:

[{"value":"value","text":"text","description":"description","propA":"propA","propB":"propB"}]

ajax调用是:

$.ajax({
    type: "GET",
    url: ajaxUrl,
    dataType: "json",
    cache: false,
    success: function (data) {
        data = $.parseJSON(data);
        var trHTML = '';
        $(function () {
            $.each(data, function (i, item) {
                trHTML = $('<tr>').append(
                         $('<td>').text(item.propB),
                         $('<td>').text(item.text),
                         $('<td>').text(item.description)
                );
            });
            $('#resourceTable').append(trHTML);
        });
    },
    error: function (msg) {
        alert(msg.responseText);
    }
});

我知道数据对象存在,但我无法渲染表。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

略过

data = $.parseJSON(data)

通过指定dataType:&#39; json&#39;在您的ajax请求中,返回的对象已经是从返回的json解析的javascript对象。顺便说一句,如果您的服务器确实将json作为内容类型标头返回,那么您甚至不需要指定dataType。