【问题标题】:Result appended twice to table ajax结果两次附加到表ajax
【发布时间】:2019-11-25 00:25:27
【问题描述】:

我正在尝试将数据附加到表中。但我的结果之一是重复两次。以下是我得到的 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 个测试

【问题讨论】:

  • 你尝试过什么调试问题?

标签: javascript ajax append laravel-5.8


【解决方案1】:

txt+ 也会附加上一个值。检查 data.groupname[I].group_name 是否不为空,然后将行追加到表中。

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

【讨论】:

  • 你能解释一下你的答案吗? (并正确缩进?)
  • 我在cmets中添加了,
  • 您的分析是正确的,但答案缺少解释(代码中的注释不能成为解释)。也请正确缩进代码。
  • 你的观点是绝对正确的。它工作...... :) 谢谢 :) 将在 2 分钟内接受这个。 :)
  • 谢谢,这是一个改进。我们必须考虑在未来几年将阅读此问题和答案的所有其他用户。
【解决方案2】:

你必须在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);
    }
 }

【讨论】:

    猜你喜欢
    • 2015-06-08
    • 2019-11-24
    • 2022-01-15
    • 1970-01-01
    • 2017-03-28
    • 2018-08-15
    • 2015-07-19
    • 2018-05-31
    • 1970-01-01
    相关资源
    最近更新 更多