2011-12-02 91 views
7

我试图为谷歌地图infowindow生成一些HTML内容。如果它们不等于null,undefined或“”(空字符串),我应该显示7个值。如果语句条件检查!=“undefined”失败

但是,显然当Propertyundefined时,我的if(e.Property != null || e.Property != "undefined" || e.Property == "")不起作用。大部分情况是e.Email未定义。因此,我的代码不是跳过那部分,而是插入html + "<br />部分。当我的电子邮件返回时,它会返回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; 
    } 
}; 
+2

你为什么把'undefined'成字符串? – Jon

+0

可能重复[如何检查未定义在JavaScript?](http://stackoverflow.com/questions/2985771/how-to-check-for-undefined-in-javascript) – Dennis

+0

+1为好问题 –

回答

2

如果你想要一个更简略的版本,你可以只使用:

if (e.Title) { 
    // add to HTML 
} 
if (e.Address) { 
    // add to HTML 
} 

您可能想要考虑将您的HTML构建为一个数组,然后在最后加入以避免创建多个字符串,例如通过e.length原因变量类型

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" 
5

你要检查!==未定义

例如

if(myvar !== undefined) { 
    //DO SOMETHING 
} 
+0

这是真正有帮助 –

1

undefined是一个变量名,而不是一个字符串。

你不需要它周围的引号。

+0

降价的任何理由? –

1

要检查它,就好像它的值是字符串“未定义”

删除“”

3
if(e) //this would be shorter 

if(e != undefined) 
// 
if(typeof(e) != 'undefined') 
0

更好地检查东西都没有acurate的JavaScript中