документ.getelementbyId вернет null, если элемент не определен?
В моем коде я вижу следующее:
if (document.getElementById('xx') !=null) {
//do stuff
}
Если элемент xx
не определен, будет ли это значение равно true или false?
Должен ли я написать:
if (document.getElementById('xx'))
Чтобы быть в безопасности?
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!');