документ.getelementbyId вернет null, если элемент не определен?


В моем коде я вижу следующее:

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

Если элемент xx не определен, будет ли это значение равно true или false?

Должен ли я написать:

if (document.getElementById('xx'))

Чтобы быть в безопасности?

3 21

3 ответа:

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

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

Вы должны использовать document.getElementById('xx') !== null, так как это более сильная проверка равенства.

getElementById определяется DOM Level 1 HTML для возврата null в случае, если ни один элемент не сопоставлен.

!==null это наиболее явная форма проверки, и, вероятно, лучшая, но нет никакого не-null ложного значения, которое getElementById может возвратить - вы можете получить только null или всегда истинный элемент объекта. Так что здесь нет никакой практической разницы между !==null, !=null или более слабый if (document.getElementById('xx')).

Да, он вернет null, если его нет, вы можете попробовать это ниже в демо. Оба вернутся истинными. Первые элементы существуют, вторые-нет.

Демо-версия

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