当 document.getElementByID 在没有 ID 的情况下使用时,它在做什么?

When document.getElementByID is used without an ID what is it doing?

我正在查看的一些代码使用了我不理解的 getElementByID 变体。我在网上看过,但没有找到任何可以解释这一点的内容。

我知道如何使用像 document.getElementByID("bob") 这样的东西,但是我看到的是:

if (document.getElementByID){} 

当您以这种方式使用 getElementByID 时,它在做什么?

这将 return false:

if (document.getElementByID){} 

因为document对象上没有getElementByID。但是,getElementById(注意最后 d 的区别)。

因此,这将returntrue

if (document.getElementById){} 

简而言之,如果 getElementByID 存在于文档中,由于输入的原因,它不存在,但如果存在,则执行某些操作。

使用正确拼写的更完整示例:

if (document.getElementById) {
    // it is safe to use this method because it exists on document
    var element = document.getElementById('foo');
}

document.getElementById return 是一个在表达式中计算结果为 true 的函数。您可以自己测试,但 运行 代码片段。

console.log(document.getElementById);
// The !! forces a boolean
console.log(!!document.getElementById);

document.getElementById returns 可用于通过 ID 获取某些元素的函数。

typeof document.getElementById; // 'function'

但是,如果某些浏览器未实现 getElementById,您将得到 undefined

因此,这只是一个测试,以确保该方法在调用之前存在,避免出错。

if(document.getElementById) {
  // Hopefully it's safe to call it
  document.getElementById("bob");
  // ...
} else {
  alert('What kind of stupid browser are you using? Install a proper one');
}