2011-04-04 3 views
0

J'essaie d'analyser un flux RSS en utilisant javascript. Parfois, un flux a plusieurs catégories, donc je veux vérifier s'il y a quelque chose au point 2. Si je ne vérifie pas, je reçois une erreur et quand j'utilise le code suivant pour vérifier, j'ai aussi une erreur. (Je définis simplement var cat2 comme un test si la variable est définie ou non).Test de variable non déclarée

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

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

      var cat2 = "2"  
     } 

Répondre

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

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

Vous pouvez également réduire cela en utilisant une opération ternaire:

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

Vous êtes le code ne fonctionne que s'il y a un élément dans la gamme de la position 2.

Pourquoi ne pas simplement faire:

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

Vous pouvez essayer quelque chose comme ceci:

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

Vérification si une variable est définie peut être fait par ce qui suit comme une réponse ci-dessus, si (typeof catItem == 'non défini'!) {...}

Cependant, je voulais juste souligner que la variable indéfinie n'est pas la même chose qu'une variable non déclarée. Ce que vous demandez n'est pas "Test de variable non déclarée" comme vous l'avez mis dans le titre.

Une variable indéfinie est une variable "déclarée" mais non affectée de valeur. Une variable non déclarée est une variable qui n'a pas été déclarée avec un mot-clé "var".

Questions connexes