是否存在document.getElementById(' element');将返回undefined

时间:2015-01-29 07:21:26

标签: javascript jquery dom

根据我的理解和微小的经验,document.getElementById('element');将返回该元素,如果它存在,否则返回null,如果它不存在。  所以在任何情况下它都不会返回undefined 我想向专家证实这些,因此请向专家社区提问 谢谢

2 个答案:

答案 0 :(得分:3)

不,它将始终返回null或DOM元素。它无法返回undefined

请参阅W3C DOM spec

  

返回具有给定值的ID属性的Element。如果不存在此类元素,则返回null

请注意,该规范也说明了这一点:

  

如果多个元素具有带该值的ID属性,则返回的内容未定义。

这并不意味着它将返回undefined,它只是意味着当多个元素具有给定ID时调用{em>未定义行为时调用getElementById。但是,即使在这种情况下,任何实现都不会返回除元素之外的任何内容或null

答案 1 :(得分:1)

如上述评论中所述:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8" />
  <title>Test Page</title>
 <script type="text/javascript" id="UN">
//<!--
var a, b, undef;

function testthis()
{ a=document.getElementById("UN");
  //COULD now do: b=a.undef;
  b=document.getElementById("UN").undef;
  //If you set a breakpoint where you can examine b
  // its value will be undefined
  return;
}

//-->
 </script>
</head>
<body onload="testthis();">
test page
</body>
</html>

可以指出,我们正在处理OBJECTS;如果找不到ID(没有对象具有该ID),document.getElementById()函数将返回null,并且如果可以找到ID,则返回对象。没有同时具有ID的对象,否则&#34; undefined&#34; - 尽管这个测试代码显示,一个对象可能包含一些未定义的东西(如undef变量)。