检查对象内的空值

时间:2016-07-07 23:04:23

标签: javascript jquery asp.net

所以我希望将数据库中的这些行显示为表,而不是所有列都填充,某些行对于column3或columnX都为null。

if(datos[i].column1== "" || datos[i].column1== null)
                        datos[i].column1= "-";
                    if(datos[i].column2== "" || datos[i].column2== null)
                        datos[i].column2= "-";
                    if(datos[i].column3== "" || datos[i].column3== null)
                        datos[i].column3= "-";
                    if(datos[i].column4 == "" || datos[i].column4 == null)
                        datos[i].column4 = "-";
                    if(datos[i].column5 == "" || datos[i].column5== null)
                        datos[i].column5 = "-";
                    if(datos[i].column6 == "" || datos[i].column6 == null)
                        datos[i].column6 = "-";
                    if(datos[i].column7 == "" || datos[i].column7== null)
                        datos[i].column7= "-";
                    s+='<tr>'+
                       ' <td data-type="1">'+ datos[i].column1 + '</td>' +
                       ' <td data-type="2">'+ datos[i].column2 + '</td>' +
                       ' <td data-type="3">'+ datos[i].column3 + '</td>' +
                       ' <td data-type="4">'+ datos[i].column4 + '</td>' +
                       ' <td data-type="5">'+ datos[i].column5 + '</td>' +
                       ' <td data-type="6">'+ datos[i].column6.substr(0, 10) + '</td>' +
                       ' <td data-type="7">'+ datos[i].column7.substr(0, 10) + '</td>' +
                       ' <td data-type="8">'+ datos[i].column8.substr(0, 10) + '</td>' +
                       ' <td data-type="9">'+ datos[i].column9+ '</td>' +
                       ' <td data-type="10">'+ datos[i].column10+ '</td>' +
                       ' <td data-align="center"><p data-placement="top"><button class="btn btn-primary btn-xs" onclick=LlenaDatos("' + datos[i].column2+ '")><span class="glyphicon glyphicon-pencil"></span></button></p></td> ' +
                       '</tr>';

我认为它看起来非常野蛮,我希望用一种不那么原始的方法来检查所有列的空值或空,并让它们看起来只是一个破折号。

2 个答案:

答案 0 :(得分:1)

试试这个:

s += '<tr>';
$.each(datos[i], function(key, val){
   if(!val)
      datos[i][key] = "-";
   s += ' <td data-type="1">'+ datos[i][key] + '</td>';
});
s += '<td data-align="center"><p data-placement="top"><button class="btn btn-primary btn-xs" onclick=LlenaDatos("' + datos[i].column2+ '")><span class="glyphicon glyphicon-pencil"></span></button></p></td></tr>';

现在你可以在一个循环中完成所有工作。

答案 1 :(得分:0)

如果字符串为null或为空,则可以使用||运算符返回其他内容,而不是修改数据。

...
' <td data-type="1">'+ (datos[i].column1 || '-') + '</td>' +
' <td data-type="2">'+ (datos[i].column2 || '-') + '</td>' +
...