document.getelementbyId will return null if element is not defined?

烂漫一生 提交于 2019-12-30 01:36:31

问题


In my code, I see this:

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

if xx element is not defined, will this evaluate to true or false?

Should I write:

if (document.getElementById('xx'))

to be safe?


回答1:


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

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

You should use document.getElementById('xx') !== null as it is a stronger equality check.




回答2:


getElementById is defined by DOM Level 1 HTML to return null in the case no element is matched.

!==null is the most explicit form of the check, and probably the best, but there is no non-null falsy value that getElementById can return - you can only get null or an always-truthy Element object. So there's no practical difference here between !==null, !=null or the looser if (document.getElementById('xx')).




回答3:


Yes it will return null if it's not present you can try this below in the demo. Both will return true. The first elements exists the second doesn't.

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


来源:https://stackoverflow.com/questions/15666163/document-getelementbyid-will-return-null-if-element-is-not-defined

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!