Javascript document.getElementById(';element';)时是否存在这种情况;将返回未定义的

Javascript document.getElementById(';element';)时是否存在这种情况;将返回未定义的,javascript,jquery,dom,Javascript,Jquery,Dom,根据我的理解和经验,document.getElementById('element');如果元素存在,则返回该元素;如果元素不存在,则返回null。 因此,在任何情况下,它都不会返回未定义的结果 我希望从专家那里确认这些,因此在此向专家社区提问 谢谢否,它将始终返回null或DOM元素。它不能返回未定义的 见: 返回具有给定值的ID属性的元素。如果不存在这样的元素,则返回null 请注意,规范中还指出: 如果多个元素具有具有该值的ID属性,则返回的内容未定义 这并不意味着它将返回undefin

根据我的理解和经验,document.getElementById('element');如果元素存在,则返回该元素;如果元素不存在,则返回null。 因此,在任何情况下,它都不会返回未定义的结果 我希望从专家那里确认这些,因此在此向专家社区提问
谢谢

否,它将始终返回
null
或DOM元素。它不能返回未定义的

见:

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

请注意,规范中还指出:

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


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

如上面的注释所述:

<!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>

测试页
//
测试页

可以指出,我们是在处理对象;如果找不到ID(没有对象具有该ID),则
document.getElementById()
函数将返回
null
,如果可以找到ID,则将返回一个对象。没有同时具有ID的对象是“未定义”的——尽管如本测试代码所示,对象可能包含未定义的内容(如
undef
变量)。

否,它不会返回
undefined
,它要么是
null
要么是element如果您确实需要从整个文档中的某个内容获取“未定义”的状态,那么您可以将某种ID分配给
块之一,并在该块内指定类似
var unde--确保对该变量不做任何其他操作!然后,在代码的其他地方,可以使用
document.getElementById(“UN”).undf
获取
undef
变量的未定义状态。我将在下面发布完整测试页面的代码作为答案,即使答案与您所问的不完全一致。是的,先生,我检查了其中一个测试用例,再见。现在document.getElementById('element');返回hi.>>因此,它可能会返回它遇到的第一个id元素。非常感谢您对未定义元素的好奇。然而,我的目的只是想知道document.getElementById('elementx')是否会返回未定义。根据这一系列的讨论,它永远不会这样做。现在,如果我们只做document.getElementById('elementx')。value>>>>>它将返回undefined,因为div没有值。>>>请仔细查看这个线程,实际上,一旦您指定了一个全局变量,比如
var unde
(并且永远不要给它赋值),您可以在任何需要“未定义”的地方直接使用它(例如,
if(a==undef)
如果变量
a
也未定义,则
将为
true
)。您永远不需要执行
document.getElementById()用于与“未定义”概念相关的任何内容。我的测试页面代码更多的是显示可能性,而不是其他任何东西。