在我的代码中,我看到了:
if (document.getElementById('xx') !=null) {
//do stuff
}
如果未定义xx
元素,评估为true还是false?
我应该写:
if (document.getElementById('xx'))
安全吗?
答案 0 :(得分:61)
console.log(document.getElementById('xx') ) evaluates to null.
document.getElementById('xx') !=null evaluates to false
你应该使用document.getElementById('xx') !== null
,因为这是一个更强大的平等检查。
答案 1 :(得分:13)
getElementById
由DOM Level 1 HTML定义,以便在没有元素匹配的情况下返回null
。
!==null
是最明确的检查形式,可能是最好的,但没有null
可以返回的非getElementById
假值 - 您只能获得{{} 1}}或一个始终真实的Element对象。因此,null
,!==null
或更宽松的!=null
之间没有实际差异。
答案 2 :(得分:8)
是的,如果不存在,它将返回null您可以在演示中尝试以下操作。两者都将返回true。第一个元素存在,第二个元素不存在。
<强> 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!');