Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于id标识符访问HTML元素_Javascript_Dom - Fatal编程技术网

Javascript 基于id标识符访问HTML元素

Javascript 基于id标识符访问HTML元素,javascript,dom,Javascript,Dom,我在玩javascript,我不明白这个小片段是如何工作的: html> javascript>foo_bar.textContent=“你好,世界!” 结果>你好,世界 foo_bar不是以前在代码中定义的变量。我的javascript代码中只有这一行。 检查JSFIDLE演示: 那么到底发生了什么呢? 我一直认为,如果没有像element.getElementById()这样的dom方法,就不可能访问dom元素。 有关于这种行为的文件吗?(我在mdn上的搜索未成功)取自bobInce 应该发

我在玩javascript,我不明白这个小片段是如何工作的:

html>

javascript>
foo_bar.textContent=“你好,世界!”

结果>
你好,世界

foo_bar不是以前在代码中定义的变量。我的javascript代码中只有这一行。
检查JSFIDLE演示:

那么到底发生了什么呢?
我一直认为,如果没有像element.getElementById()这样的dom方法,就不可能访问dom元素。
有关于这种行为的文件吗?(我在mdn上的搜索未成功)

取自bobInce

应该发生的是,“命名元素”被添加为文档对象的明显属性。这是一个非常糟糕的想法,因为它允许元素名称和文档的真实属性冲突

IE还添加了命名元素作为窗口对象的属性,从而使情况变得更糟。这是非常糟糕的,因为现在您必须避免以文档或窗口对象(或项目中的任何其他库代码)的任何成员命名元素

阅读更多:

这意味着这样做是非常不好的做法,有些浏览器不支持这样做,好的浏览器不支持这样做。


发生的情况是,一些浏览器将它们作为窗口类创建全局变量,使它们在窗口加载时立即可访问。

关于
querySelector
?一些浏览器将在窗口级别创建全局变量,引用DOM中的元素。@AlexeyLebedev。我应该多找点。谢谢你的链接!谢谢你的链接。顺便说一句,我同意这个坏主意。