2011-12-02 17 views
7

Bir google maps infowindow için bazı HTML içeriği oluşturmaya çalışıyorum. Null, undefined veya "" (boş string) eşit değilse, görüntülenmesi gereken 7 değere sahibim.If-statement durumu kontrol ediliyor! = "Undefined" başarısız oldu

Ancak, Propertyundefined adresindeki if(e.Property != null || e.Property != "undefined" || e.Property == "") benim görünüşte çalışmıyor. Çoğunlukla durum e.Email undefined. Bu kısmı atlamak yerine, kodum hala html + "<br /> parçasını ekliyor. Ve ben alert() e.Eposta, bu durumda yakalanması ve atlanması gereken undefined döndürür.

if(typeof e.Property != null || typeof e.Property != "undefined" || typeof e.Property == "") yazmayı denedim, ancak bu fark yaratmadı.

// '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

Neden bir dizeye 'undefined' koyarım JavaScript acurate değil mi? – Jon

+0

olası yinelenen [Nasıl javascript içinde undefined için kontrol edin?] (Http://stackoverflow.com/questions/2985771/how-to-check-for-undefined-in-javascript) – Dennis

+0

+1 İyi soru için –

cevap

2

sadece kullanabilirsiniz" kaldır dizesi "tanımlanmamış" dir sanki onu kontrol ediyoruz HTML'nizi bir dizi olarak oluşturmayı düşünmek ve sonra birçok dizeyi oluşturmaktan kaçınmak için sonunda birleştirmek isteyebilirsiniz. e.length nedeni değişkenleri türü aracılığıyla

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

Sen kontrol etmek istiyorum! ==

tanımsız örn

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

gerçekten yararlı –

1

undefined değişken ad değil, bir dizedir.

Bunun için tırnaklara ihtiyacınız yok.

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

Sen may:

+0

Downvotes için herhangi bir sebep? –

1

Bunu değeri

Eğer daha kestirme bir sürümünü isterseniz "

3
if(e) //this would be shorter 

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