繁体   English   中英

使用Javascript Ajax响应动态创建表

[英]Use Javascript ajax response to create table dynamically

我正在使用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);
            }
        }
    }
}

请帮忙。 我在哪里做错了。

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

像这样:

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

之后,添加新行。

您需要先清空表,然后再向其中添加任何数据。

因此添加此行

table.innerHTML = '';

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

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

Utkarsh Vishnoi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM