If语句条件检查!="undefined"失败

7 javascript jquery undefined

我正在尝试为google maps infowindow生成一些HTML内容.如果它们不等于null,undefined或""(空字符串),我有7个值应该显示.

但显然我的if(e.Property != null || e.Property != "undefined" || e.Property == "")工作Property是不行的undefined.大多数情况e.Email是未定义的.因此,我的代码仍然不会跳过该部分,而是会插入该html + "<br />部分.当我alert()e.Email它返回undefined它应该捕获并跳过,如果是这种情况.

我尝试过写作if(typeof e.Property != null || typeof e.Property != "undefined" || typeof e.Property == ""),但这并没有什么区别.

// 'e ' is JSON object
var generateHTML = {
    init: function(e) {
        if (e != null || e != "undefined"){
            generateHTML.check(e);
        }
    },
    check: function (e) {
        if(e.Title != null || e.Title != "undefined" || e.Title == ""){
            html = html + "<b>"+e.Title+"</b>";
        }
        if(e.Address != null || e.Address != "undefined" || e.Address == ""){
            html = html +"<br />"+ e.Address;
        }
        if(e.Zipcode != null || e.Zipcode != "undefined" || e.Zipcode == ""){
            html = html +"<br />"+ e.Zipcode+", ";
        }
        if(e.City != null || e.City != "undefined" || e.City == ""){
            html = html + e.City;
        }
        if(e.Phone != null || e.Phone != "undefined" || e.Phone == ""){
            html = html +"<br />"+ e.Phone;
        }
        if(e.Email != null || e.Email != "undefined" || e.Email == ""){
            html = html +"<br />"+ e.Email;
        }
        if(e.WebAddress != null || e.WebAddress != "undefined" || e.WebAddress == ""){
            html = html +"<br />"+ e.WebAddress;
        }
        return html;
    }
};
Run Code Online (Sandbox Code Playgroud)

psy*_*ott 5

你想检查!== undefined

例如

if(myvar !== undefined) { 
    //DO SOMETHING 
}
Run Code Online (Sandbox Code Playgroud)


jab*_*lab 3

如果您想要更简写的版本,您可以使用:

if (e.Title) {
    // add to HTML
}
if (e.Address) {
    // add to HTML
}
Run Code Online (Sandbox Code Playgroud)

您可能需要考虑将 HTML 构建为数组,然后在末尾加入以避免创建许多字符串,例如

var html = [];
html.push("FirstName");
html.push("<br />");
html.push("LastName");
html.push("<br />");
html.push("Number");
var output = html.join(""); // "FirstName<br />LastName<br />Number"
Run Code Online (Sandbox Code Playgroud)