首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >If-statement条件检查!= "undefined“失败

If-statement条件检查!= "undefined“失败
EN

Stack Overflow用户
提问于 2011-12-02 21:28:30
回答 7查看 37.7K关注 0票数 7

我正在尝试生成一些HTML内容的谷歌地图infowindow。我有7个值,如果它们不等于null、undefined或"“(空字符串),则应该显示它们。

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

我尝试过编写if(typeof e.Property != null || typeof e.Property != "undefined" || typeof e.Property == ""),但这并没有什么不同。

代码语言:javascript
复制
// '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;
    }
};
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-12-02 21:37:33

如果你想要一个更速记的版本,你可以使用:

代码语言:javascript
复制
if (e.Title) {
    // add to HTML
}
if (e.Address) {
    // add to HTML
}

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

代码语言:javascript
复制
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"
票数 3
EN

Stack Overflow用户

发布于 2011-12-02 21:29:20

您要检查!==是否未定义

例如:

代码语言:javascript
复制
if(myvar !== undefined) { 
    //DO SOMETHING 
}
票数 6
EN

Stack Overflow用户

发布于 2011-12-02 21:56:52

代码语言:javascript
复制
if(e) //this would be shorter

if(e != undefined)
//
if(typeof(e) != 'undefined')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8357026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档