2010-09-26 9 views
0

J'ai ce javascript dans une page asp classique ...Comment savoir si la valeur est définie ou non

J'ai besoin de savoir si x.name est indéfini ou a une valeur:

x=document.getElementsByTagName("meta")[i]; 
if (String(x.name) != "undefined" && String(x.name) != ""){ 
document.write(""+x.name +": "+x.content+"<br><br>"); 
} 

Je ne sais pas pourquoi il jette une erreur:

document.write(""+x.name +": "+x.content+"<br><br>"); 

si x.name ou x.content est faux?

Merci

+0

Peut-être que x n'est pas encore rendu comme Robusto le suggère, mais si la page est chargée et que vous utilisez ensuite document.write, vous essuierez la page en incluant ses scripts – mplungjan

Répondre

1

Pour vérifier undefined:

if (typeof x !== 'undefined') { 
    if (x.name) { 
    document.write(x.name + ': ' + x.content + '<br><br>'); 
    } 
} 

Maintenant, je ne sais pas ce que vous essayez de faire avec ce document.write() appel, de sorte que pourraient causer des problèmes aussi, mais le fera ci-dessus que vous ne faites-le quand "x" existe et a un attribut "nom" non vide.

+0

Cela ne fait pas partie de la question principale mais comment puis-je le faire sans document écrire –

+0

Salut Pointy Merci pour la solution cela fonctionne parfaitement .. En fait, il a résolu un deuxième problème pour moi aussi ... Le x (a deux valeurs) x.name et x.content dans certains cas 1 valeur sera vraie et une autre valeur sera fausse ... Votre solution la rend fausse même si une valeur est vraie et l'autre fausse ... C'est exactement ce dont j'avais besoin! –

+0

Eh bien, je ne sais pas exactement ce que vous voulez faire avec 'document.write()', mais une possibilité est d'utiliser 'innerHTML' pour insérer votre contenu dynamique dans un élément vide de la page. Ainsi, la page aurait quelque chose comme '', puis vous trouveriez cet élément (avec 'getElementById()') et définissez sa propriété "innerHTML" sur ce que vous écrivez dans la page. – Pointy

0

Il jette des une erreur parce que vous êtes probablement en train d'écrire la valeur d'un élément avant qu'il ait été instancié. Tant que votre page n'est pas chargée, aucun de ses éléments n'existe et ils ne peuvent plus être référencés.

+0

Je suis sûr que l'élément n'existe pas dans certains cas ... Je sais qu'il n'existe pas et c'est pourquoi je ne veux pas le montrer ... –

Questions connexes