Javascript 基于id标识符访问HTML元素
我在玩javascript,我不明白这个小片段是如何工作的: 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>foo_bar.textContent=“你好,世界!”代码>
结果>你好,世界代码>
foo_bar不是以前在代码中定义的变量。我的javascript代码中只有这一行。
检查JSFIDLE演示:
那么到底发生了什么呢?
我一直认为,如果没有像element.getElementById()这样的dom方法,就不可能访问dom元素。
有关于这种行为的文件吗?(我在mdn上的搜索未成功)取自bobInce
应该发生的是,“命名元素”被添加为文档对象的明显属性。这是一个非常糟糕的想法,因为它允许元素名称和文档的真实属性冲突
IE还添加了命名元素作为窗口对象的属性,从而使情况变得更糟。这是非常糟糕的,因为现在您必须避免以文档或窗口对象(或项目中的任何其他库代码)的任何成员命名元素
阅读更多:
这意味着这样做是非常不好的做法,有些浏览器不支持这样做,好的浏览器不支持这样做。
发生的情况是,一些浏览器将它们作为窗口类创建全局变量,使它们在窗口加载时立即可访问。关于querySelector
?一些浏览器将在窗口级别创建全局变量,引用DOM中的元素。@AlexeyLebedev。我应该多找点。谢谢你的链接!谢谢你的链接。顺便说一句,我同意这个坏主意。