也许这里的朋友认为我不是在做自己的生意,也不是在搜寻谷歌。但是我在这里问一个问题,因为确实感到僵持,这就是为什么这个论坛被认为是堆栈溢出的原因。
我想在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>"+" "+"</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">'
});
}
});
答案 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>" + " " + "</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>"+" "+"</td>"
}else{
return "<td>"+"<a href='' class='btn btn-xs btn-success'>Approve</a>"+"</td>"
}
}
然后
"some string"+conditionalString(data[x].status)+"some more strings"
您也可以选择内联定义函数,但我将自己弄清楚该语法。