当没有ID使用document.getElementByID时它在做什么?

时间:2016-07-21 20:29:50

标签: javascript dom getelementbyid

我有一些代码,我正在使用getElementByID的变体,我不明白。我已经在线查看,但我找不到任何解释这一点的内容。

我理解如何使用像document.getElementByID(" bob")这样的东西,不过我所看到的是:

if (document.getElementByID){} 

以这种方式使用getElementByID它在做什么?

2 个答案:

答案 0 :(得分:3)

document.getElementById返回可用于通过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');
}

答案 1 :(得分:1)

这将返回false

if (document.getElementByID){} 

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

因此,这将返回true

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返回一个在表达式中计算结果为true的函数。您可以自己测试一下,但运行代码段。

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