如果未定义元素,document.getelementbyId将返回null?

时间:2013-03-27 18:04:31

标签: javascript domdocument

在我的代码中,我看到了:

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

如果未定义xx元素,评估为true还是false?

我应该写:

if (document.getElementById('xx'))

安全吗?

3 个答案:

答案 0 :(得分:61)

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

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

你应该使用document.getElementById('xx') !== null,因为这是一个更强大的平等检查。

答案 1 :(得分:13)

getElementByIdDOM Level 1 HTML定义,以便在没有元素匹配的情况下返回null

!==null是最明确的检查形式,可能是最好的,但没有null可以返回的非getElementById假值 - 您只能获得{{} 1}}或一个始终真实的Element对象。因此,null!==null或更宽松的!=null之间没有实际差异。

答案 2 :(得分:8)

是的,如果不存在,它将返回null您可以在演示中尝试以下操作。两者都将返回true。第一个元素存在,第二个元素不存在。

Demo

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