2011-04-04 59 views
0

我正在嘗試使用javascript解析RSS提要。有時Feed有多個分類,所以我想檢查第2項是否有任何內容。如果我不檢查是否收到錯誤,並且在使用下面的代碼檢查時是否也收到錯誤。 (如果變量已被定義,我將var cat2設置爲測試)。測試未聲明的變量

var catItem = item.getElementsByTagName("category").item(2).text; 

     if (typeof catItem != 'undefined'){ 
      var cat2 = "1" 
     } 
     else{ 

      var cat2 = "2"  
     } 

回答

0
var catItem = document.getElementsByTagName("category")[2]; 
var cat2 = "2"; 

if (typeof catItem !== 'undefined') { 
    cat2 = "1"; 
} 

你也可以縮短這件事通過使用三元操作:

var catItem = document.getElementsByTagName("category")[2]; 
var cat2 = catItem ? "2" : "1"; 
0

你如果在的位置範圍內的要素代碼只會工作2

爲什麼不這樣做:

if(item.getElementsByTagName("category").length > 1) { 
0

你可以嘗試這樣的事情:

var catItem = item.getElementsByTagName("category"); 
if(catItem[1]) { 
    ... 
} 
else { 
    ... 
} 
1

檢查,如果一個變量是不確定的,可以通過做如上回答,如果(!typeof運算catItem ==「未定義」)以下的{...}

但是,我只想指出未定義變量與未聲明變量不同。你所要求的不是在標題中加入「測試未聲明的變量」。

未定義變量是「聲明」但未分配任何值的變量。未聲明的變量是未用「var」關鍵字聲明的變量。