如何在显示json数据时删除undefined

时间:2016-07-09 09:00:13

标签: jquery

我在jquery用户中迭代客户列表,如下所示

 $.post("customer", {param: cid, order: order}, function (data) {
                    console.log(data);
               $.each(data.customerList, function (i, obj) {
                        $("#" + tid).append('<tr><td>' + (i + 1) + '</td><td>' + obj.customerName + '</td><td>' + obj.address + '</td>'
                                + '<td>' + obj.city + '</td><td>' + obj.state + '</td><td>' + obj.country + '</td><td>' + obj.mobno + '</td></tr>');
                    });

此代码正常运行并正确获取数据。 我的问题是它显示未定义的空字段。 如何解决这个问题。

1 个答案:

答案 0 :(得分:3)

使用|| ""

$.post("customer", {param: cid, order: order}, function (data) {
   console.log(data);
   $.each(data.customerList, function (i, obj) {
      $("#" + tid).append('<tr><td>' + (i + 1) + '</td><td>' + (obj.customerName || "") + '</td><td>' + (obj.address || "") + '</td>'
      + '<td>' + (obj.city || "") + '</td><td>' + (obj.state || "") + '</td><td>' + (obj.country || "") + '</td><td>' + (obj.mobno || "") + '</td></tr>');
   });

如果该字段为空,则会设置空值而不是undefined

参见以下示例:

&#13;
&#13;
var test = {
   prop1: "Test value",
   prop2: null,
   prop3: undefined
};

console.log(test.prop1 || "empty");
console.log(test.prop2 || "empty");
console.log(test.prop3 || "empty");
console.log(test.prop4 || "empty");
&#13;
&#13;
&#13;