如果语句条件检查!=“undefined”失败
我试图为谷歌地图infowindow生成一些HTML内容。如果它们不等于null,undefined或“”(空字符串),我应该显示7个值。如果语句条件检查!=“undefined”失败
但是,显然当Property
为undefined
时,我的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;
}
};
如果你想要一个更简略的版本,你可以只使用:
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"
你要检查!==未定义
例如
if(myvar !== undefined) {
//DO SOMETHING
}
这是真正有帮助 –
undefined
是一个变量名,而不是一个字符串。
你不需要它周围的引号。
降价的任何理由? –
要检查它,就好像它的值是字符串“未定义”
删除“”
if(e) //this would be shorter
if(e != undefined)
//
if(typeof(e) != 'undefined')
更好地检查东西都没有acurate的JavaScript中
你为什么把'undefined'成字符串? – Jon
可能重复[如何检查未定义在JavaScript?](http://stackoverflow.com/questions/2985771/how-to-check-for-undefined-in-javascript) – Dennis
+1为好问题 –