结果附加到 table ajax 两次

Result appended twice to table ajax

我正在尝试将数据附加到 table。但我的结果之一是重复两次。以下是我收到的 json 回复。

groupname   […]
 0  {…}
 survey_id  2
 group_name DEMO
 1  {…}
 survey_id  1
 group_name TEST

我的ajax成功如下

if(data){

    var txt = "";
    for(var i=0;i<=Object.keys(data).length;i++){
    if(data ){
      txt += '<tr><td>'+data.groupname[i].group_name+'</td></tr>';
             }
    if(txt != ""){
            $("#table").append(txt);
                 }

            }
       }

但是显示如下

我只需要 1 个演示和 1 个测试

txt+ 也会追加之前的值。检查 data.groupname[I].group_name 是否不为空,然后将行附加到 table .

if(data){
    var txt = "";
    for(var i=0;i<=Object.keys(data).length;i++){
    //txt+ also will append the previous val. SO check if data.groupname[i].group_name is not empty then append.
    if(data.groupname[i].group_name ){
        txt = '<tr><td>'+data.groupname[i].group_name+'</td></tr>';
        $("#table").append(txt);
    }
    }
}

你必须在 for 循环之后追加,问题是你收集 txt 并追加到循环的每个索引中,然后解决方案收集所有行然后追加。

if(data){
    var txt = "";
    for(var i=0;i<=Object.keys(data).length;i++){
      if(data ){
        txt += '<tr><td>'+data.groupname[i].group_name+'</td></tr>';
      }
    }
    if(txt != ""){
      $("#table").append(txt);
    }
 }