在循环ajax中使用语句

时间:2018-12-01 03:20:56

标签: javascript ajax if-statement

也许这里的朋友认为我不是在做自己的生意,也不是在搜寻谷歌。但是我在这里问一个问题,因为确实感到僵持,这就是为什么这个论坛被认为是堆栈溢出的原因。

我想在ajax上使用关于数据循环的声明,但是我有问题。

错误:

  

未捕获的SyntaxError:如果出现意外令牌

以下是我的语法,如果确实错误,请帮助我修复它。

      $.ajax({
        type: 'get',
        url : '<?php echo base_url() ?>index.php/truk/daftar_jeniskerusakan_ajx',
        dataType: 'JSON',
        success:function(data){
          var i = 1;
          var html;
          for (x=0; x<data.length;x++) {
            html += "<tr>"+
                    "<td>"+i+"</td>"+
                    "<td>"+data[x].jenis_kerusakan+"</td>"+
                    if(data[x].status === "1"){
                    "<td>"+"&nbsp;"+"</td>"+
                    }else{                          
                    "<td>"+"<a href='' class='btn btn-xs btn-success'>Approve</a>"+"</td>"+
                    };
                    "</tr>";
                  i++;
          }
          $('#daftar_jenis_kerusakan').append(html);
          $('#daftar_jenis_kerusakan').DataTable({
            "pageLength" : 10,
            "dom" : '<"search"f><"top">rt<"bottom"ip><"clear">'
          });
        }
      });

2 个答案:

答案 0 :(得分:1)

您的字符串 concatenation 的语法不正确。本质上,您是在告诉javascript将if语句附加到没有意义的字符串上,因为if语句应该用于评估条件(而不是数据类型)。相反,您需要使用if语句将其追加到html的当前值,如下所示:

var i = 1;
var html;
for (x = 0; x < data.length; x++) {
  html += "<tr>" +
    "<td>" + i + "</td>" +
    "<td>" + data[x].jenis_kerusakan + "</td>";

  if (data[x].status === "1") {
    html += "<td>" + "&nbsp;" + "</td>";
  } else {
    html += "<td>" + "<a href='' class='btn btn-xs btn-success'>Approve</a>" + "</td>";
  }

  html += "</tr>";
  i++;
}

答案 1 :(得分:0)

在该上下文中不允许使用if语句。您可以选择三级运算符

"some string"+(data[x].status === "1"?"true case":"false case")+"some more strings"

或者您将逻辑外包给返回字符串的函数

var conditionalString = (someVar) => {
    if(someVar === "1"){
        return "<td>"+"&nbsp;"+"</td>"
    }else{
        return "<td>"+"<a href='' class='btn btn-xs btn-success'>Approve</a>"+"</td>"
    }
}

然后

"some string"+conditionalString(data[x].status)+"some more strings"

您也可以选择内联定义函数,但我将自己弄清楚该语法。