意外的令牌{错误

时间:2018-06-26 18:23:36

标签: javascript

我需要有关我的JavaScript代码错误的帮助。我想要is_hadir == 1,然后选中此复选框。

错误代码在此部分:

".if(data[i].is_hadir == 1){checked = true;}else{checked = false}."

这是我的代码

for (var i = 0; i<data.length;i++){                 
    html = html +
           "<tr>"+
           "<td>"+data[i].nip+"</td>"+
           "<td>"+data[i].nm_dosen+"</td>"+
           "<td>"+data[i].email+"</td>"+
           "<td>"+data[i].no_telp+"</td>"+
           "<td><input type='checkbox' ".if(data[i].is_hadir == 1){checked = true;}else{checked = false}." name='Nip[]' onclick='cek(this,"+data[i].id_rapat+","+data[i].nip+")' value="+data[i].nip+"> </td>"+                                     
           "</tr>";
}

2 个答案:

答案 0 :(得分:0)

首先,串联使用的是+,而不是.。其次,您需要使用ternary operator

"<td><input type='checkbox' " + (data[i].is_hadir == 1? 'checked' : '') + " name='Nip[...

答案 1 :(得分:0)

就像路易斯说的那样,您使用.而不是+进行串联,但是我也建议您使用template literals而不是串联,就像您正在做的那样。因为您可以将所有代码更改为如下所示,所以它将大大提高可读性和可编辑性:

html = `${ html }
<tr>
    <td>${ data[i].nip }</td>
    <td>${ data[i].nm_dosen }</td>
    <td>${ data[i].email }</td>
    <td>${ data[i].no_telp }</td>
    <td>
        <input type='checkbox' 
            checked='${ !!data[i].is_hadir }' name='${ Nip[] }'
            onclick='cek(this, ${ data[i].id_rapat }, ${ data[i].nip })'
            value='${ data[i].nip }'>
    </td>                                     
</tr>`;

此外,您可能应该在输入中添加事件侦听器,而不是直接注入onclick中(您可能是通过这种方式引入了一些XSS错误),但这是一个单独的问题。

希望您能看到这如何改善当前代码。