web-dev-qa-db-fra.com

document.getelementbyId retournera null si l'élément n'est pas défini?

Dans mon code, je vois ceci:

if (document.getElementById('xx') !=null) {
    //do stuff
}

si l'élément xx n'est pas défini, cela sera-t-il évalué comme vrai ou faux?

Dois-je écrire:

if (document.getElementById('xx'))

pour être sûr?

28
Victor
console.log(document.getElementById('xx') ) evaluates to null.

document.getElementById('xx') !=null evaluates to false

Vous devez utiliser document.getElementById('xx') !== null car il s'agit d'un contrôle d'égalité plus fort.

64
Garrett

getElementById est défini par DOM niveau 1 HTML pour renvoyer null dans le cas où aucun élément ne correspond.

!==null Est la forme la plus explicite de la vérification, et probablement la meilleure, mais il n'y a pas de valeur falsifiée non - null que getElementById puisse retourner - vous ne pouvez obtenir que null ou un objet Element toujours véridique. Il n'y a donc pas de différence pratique entre !==null, !=null Ou le lâche if (document.getElementById('xx')).

16
bobince

Oui, il retournera null s'il n'est pas présent, vous pouvez essayer ceci ci-dessous dans la démo. Les deux reviendront vrais. Le premier élément existe, le second n'existe pas.

Démo

Html

<div id="xx"></div>

Javascript:

   if (document.getElementById('xx') !=null) 
     console.log('it exists!');

   if (document.getElementById('xxThisisNotAnElementOnThePage') ==null) 
     console.log('does not exist!');
8
Peter Rasmussen