Javascript:循环仅输出最后一个值

时间:2018-08-06 23:47:41

标签: javascript jquery

我正在使用以下循环在javascript中打印数据

for(var i = 0; i < result.data.length; i++){
     var getbills = result.data;
     var html = "<tr>";
     html+= "<td>"+getbills[i].customername+"</td>";
     html+= "<td>"+getbills[i].customerphone+"</td>";
     html+= "<td>"+getbills[i].tablename+"</td>";
     html+= "<td>"+getbills[i].sale_date+" "+getbills[i].sale_time+"</td>";
     html+= "<td><a href='javascript:void(0)' data-id='"+getbills[i].id+"' 
     class='btn btn-primary' 
     onclick='payforthependingorder("+getbills[i].id+")'>View</a><br /><a 
     href='"+baseURL+"Sale/deletesales/"+getbills[i].id+"' class='btn btn- 
     danger'>Delete</a></td>";
     html+= "</tr>";
     $("#billonholdtable").html(html);
  }

在“网络”标签中看到以下值

enter image description here 但只有最后一张印在桌子上,请与此联系。谢谢

3 个答案:

答案 0 :(得分:4)

采取 $("#billonholdtable").html(html);出现循环或

使用

$("#billonholdtable").append(html);

答案 1 :(得分:3)

您在代码中使用$("#billonholdtable").html(html);,这使得每次迭代都重新生成一个新的html,而不是附加它。

怎么样?

var content= '';
for(var i = 0; i < result.data.length; i++){
     var getbills = result.data;
     var html = "<tr>";
     html+= "<td>"+getbills[i].customername+"</td>";
     html+= "<td>"+getbills[i].customerphone+"</td>";
     html+= "<td>"+getbills[i].tablename+"</td>";
     html+= "<td>"+getbills[i].sale_date+" "+getbills[i].sale_time+"</td>";
     html+= "<td><a href='javascript:void(0)' data-id='"+getbills[i].id+"' 
     class='btn btn-primary' 
     onclick='payforthependingorder("+getbills[i].id+")'>View</a><br /><a 
     href='"+baseURL+"Sale/deletesales/"+getbills[i].id+"' class='btn btn- 
     danger'>Delete</a></td>";
     html+= "</tr>";
     content += html;
}
$("#billonholdtable").html(content);

答案 2 :(得分:0)

您必须声明一个变量html已退出循环。 var html =''; 在循环中,您必须按如下所述进行定义。      html + =“值”;