使用Javascript ajax响应动态创建表

时间:2015-05-20 07:52:28

标签: javascript html ajax html-table

我正在研究Javascript。我的代码中有一些API调用(使用AJAX)。我的用户界面中有一个按钮说USER DASHBOARD。单击此按钮,我正在使用AJAX进行一些API调用,并显示包含行的表的HTML UI。

在上表中有两行。如果我关闭此弹出窗口然后再次单击USER DASHBOARD按钮,它将在表格中再次附加这两行。我不想再次附加这些行。

使用AJAX响应形成表格的代码如下所示:

getUserAccountDetailsCallback: function (userid, appid, response) {
    if (response != "") {
        var res = JSON.parse(response);
        var totalNoOfApps = document.getElementById('totalSites');
        var totalNoOfSubscriptions = document.getElementById('totalSubscribers');
        totalNoOfApps.innerHTML = res.totalNoOfApps;
        totalNoOfSubscriptions.innerHTML = res.totalNoOfSubscriptions;

        if (res.subscriptionsForCurrentAppId.length > 0) {
            for (var i = 0; i < res.subscriptionsForCurrentAppId.length; i++) {
                var td1 = document.createElement('td');
                td1.style.width = '30';
                td1.innerHTML = i + 1;
                var td2 = document.createElement('td');
                td2.innerHTML = res.subscriptionsForCurrentAppId[i].gatewayName;
                var td3 = document.createElement('td');
                td3.innerHTML = res.subscriptionsForCurrentAppId[i].priceCurrencyIso;
                var td4 = document.createElement('td');
                td4.innerHTML = res.subscriptionsForCurrentAppId[i].amountPaid;

                var date = new Date(res.subscriptionsForCurrentAppId[i].subscribedDate);
                date.toString();

                var td5 = document.createElement('td');
                td5.innerHTML = date.getMonth() + 1 + '/' + date.getDate() + '/' + date.getFullYear(); //res.subscriptionsForCurrentAppId[i].subscribedDate;
                var td6 = document.createElement('td');
                td6.innerHTML = res.subscriptionsForCurrentAppId[i].transactionId;
                var td7 = document.createElement('td');
                td7.innerHTML = res.subscriptionsForCurrentAppId[i].active;

                var tr = document.createElement('tr');
                tr.appendChild(td1);
                tr.appendChild(td2);
                tr.appendChild(td3);
                tr.appendChild(td4);
                tr.appendChild(td5);
                tr.appendChild(td6);
                tr.appendChild(td7);

                var table = document.getElementById('tbl');

                table.appendChild(tr);
            }
        }
    }
}

请帮忙。我做错了。

2 个答案:

答案 0 :(得分:0)

要清理表格,您需要将其HTML内容设置为空。

这样的事情:

var table = document.getElementById('tbl');
table.innerHTML = "";

之后,添加新行。

答案 1 :(得分:0)

在向其追加任何数据之前,您需要清空表格。

因此请添加此行

table.innerHTML = '';

在代码中table.appendChild(tr);之前。 每次调用函数时,这都会清空表,然后将新数据附加到其中。

如果有任何错误,请回复我很乐意提供帮助,

Utkarsh Vishnoi