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?
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.
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'))
.
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.
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!');