2011-12-02 7 views
7

मैं Google मानचित्र infowindow के लिए कुछ HTML सामग्री उत्पन्न करने का प्रयास कर रहा हूं। मेरे पास 7 मान हैं जिन्हें प्रदर्शित किया जाना चाहिए यदि वे शून्य, अपरिभाषित या "खाली स्ट्रिंग) के बराबर नहीं हैं।अगर कथन की स्थिति जांच रही है! = "अपरिभाषित" विफल रहता है

लेकिन स्पष्ट रूप से मेरा if(e.Property != null || e.Property != "undefined" || e.Property == "") काम नहीं करता है जब Propertyundefined है। ज्यादातर मामला यह है कि e.Email अपरिभाषित है। तो उस भाग को छोड़ने के बजाय, मेरा कोड अभी भी html + "<br /> भाग दर्ज करता है। और जब मैं alert() ई.ईमेल यह 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' रखूँ जावास्क्रिप्ट में acurate नहीं हैं? – Jon

+0

संभावित डुप्लिकेट [जावास्क्रिप्ट में अपरिभाषित कैसे जांचें?] (Http://stackoverflow.com/questions/2985771/how-to-check-for-undefined-in-javascript) – Dennis

+0

अच्छे प्रश्न के लिए +1 –

उत्तर

2

आप एक अधिक आशुलिपि संस्करण चाहते हैं तो आप बस का उपयोग कर सकते है, क्योंकि यह जाँच कर रहे हैं अपने एचटीएमएल को एक ऐरे के रूप में बनाने पर विचार करना चाहते हैं और फिर कई तारों को बनाने से बचने के लिए अंत में शामिल होना चाहते हैं, उदाहरण के लिए 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 एक चर नाम नहीं है, एक स्ट्रिंग नहीं है।

आपको इसके चारों ओर उद्धरण की आवश्यकता नहीं है।

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

आप कर सकते हैं:

+0

डाउनवॉट्स के लिए कोई कारण? –

1

आप अगर अपने मूल्य स्ट्रिंग "अनिर्धारित"

हटाने ""

3
if(e) //this would be shorter 

if(e != undefined) 
// 
if(typeof(e) != 'undefined') 
संबंधित मुद्दे