2010-06-18 3 views
0
for (i=1; i<=4; i++) { 
     try { 
      timer = document.getElementById("timer"+i).parentNode.parentNode.parentNode.childNodes[1].childNodes[0].childNodes[0].className; 
     } 
     catch(e) { 
      FM_log("aguardaReforcos()", "ERRO - timer"+i); 
     } 
    ... 

Je dois cette façon avec essayer parce que sinon je reçois un accident quand il trouvejavascript - dom recherche de l'identifiant renvoie une erreur - comment gérer?

Indifférent Fume document.getElementById("timer"+i).parentNode.parentNode.parentNode.childNodes[1].childNodes[0].childNodes[0].className

est-il une autre façon de prévenir ce type d'accident?

Répondre

2

Vous pouvez utiliser chacune des propriétés à son tour sans provoquer un accident, mais le code bien entendu contenir beaucoup de tests:

var timer = document.getElementById("timer"+i); 
if (timer) { 
    timer = timer.parentNode; 
    if (timer) { 
    timer = parentNode; 
    if (timer) { 
     // and so on... 
    } 
    } 
} 
+0

Je suggère d'utiliser quelque chose comme jQuery ou Prototype si vous êtes faire ce genre de sélection. Ils fournissent des sélecteurs beaucoup plus propres et plus puissants. Utiliser jQuery dans votre page est aussi simple que d'ajouter:

+0

il semble plus facile juste comme il est maintenant. – FernandoSBS

Questions connexes