我正在重构其他人编写的一些旧代码。我遇到了以下片段:
什么时候 if 语句中的代码会被执行?
谢谢!
我正在重构其他人编写的一些旧代码,并遇到了以下片段:
if (document.all || document.getElementById) {
...
}
什么时候 if 语句中的代码会被执行?
谢谢!
我正在重构其他人编写的一些旧代码,并遇到了以下片段:
if (document.all || document.getElementById) {
...
}
document.all() 是一种非标准的访问 DOM 元素的方式。在某些浏览器中已经被弃用。它可以让你访问文档中的所有子元素。
document.getElementById() 是一种标准且完全支持的方式。每个元素在文档中都有一个唯一的 id。
document.all
和document.getElementById
都没有像div1
这样的参数。 - Evgenij Reznikelse
分支什么时候被执行呢? - SamB
document.all
和document.getElementById
而不带任何参数,则会返回“true”。因此,如果支持document.all
,则将执行您的“if”:"IE 4 -> 10"
,某些版本的Opera
,以及其他一些浏览器;或者如果支持document.getElementById
,则将执行您的“if”:"IE 5 及以上"
,"Netscape 6 及以上"
,以及所有现代版本的 "Firefox"、"Chrome"、"Safari" 等。该“if”将不会**对"IE < 4"
,"Netscape < 6"
和大多数其他旧版浏览器执行。 - Kevin Fegandocument.all
返回 false,尽管它仍然是一个对象。例如,运行console.log(!!document.all, document.all.length)
打印出false 1059
。 - Antimony