如何使用javascript AJAX响应动态创建表

时间:2015-05-20 09:24:12

标签: javascript html ajax

我正在开发javascript。 我的代码中有一些API调用(使用Ajax)。 我的用户界面enter image description here

中有一个按钮

单击此按钮我正在使用AJAX进行一些API调用并在HTML UI下面显示: enter image description here

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

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

              }

          }
      }

请帮忙。我做错了。

1 个答案:

答案 0 :(得分:0)

  1. 添加thead和tbody
    <table>
    <thead><tr><th>#</th><th>Gateway.....</tr></thead>
    <tbody id="tBodyId"></tbody>
    </table>
  2. 在追加
  3. 之前删除tbody的内容 像这样:

    var tBody = document.getElementById("tBodyID");
    while (tBody.firstChild) {
      tBody.removeChild(tBody.firstChild);
    }
    if(res.subscriptionsForCurrentAppId.length > 0){