我可以在 JavaScript 中使用 HTML 元素的 id 作为变量吗?
Can I use the id of an HTML element as a variable in JavaScript?
偶然地,我注意到我可以在JavaScript代码中使用HTML元素的id
。所以取而代之的是:
var myCanvas = document.getElementById('myCanvas');
myCanvas.width = '600';
myCanvas.height = '400';
我什至没有第一行,因为变量显然已经存在myCanvas
!
myCanvas.width = '600';
myCanvas.height = '400';
这很好,但我可以依靠它吗?这是我在所有现代浏览器中都可以期待的正常行为吗?我不关心IE9之前的任何浏览器。
在浏览器脚本编写的早期,IE 将 ID 和 NAME 属性值转换为引用相关元素的全局对象的属性。这被广泛认为是一件"坏事",但为了与IE兼容,大多数其他浏览器都复制了(当时大多数网站几乎都是为IE编写的,IE拥有约95%的用户份额)。
然后是开放标准和齐心协力的支持。现在没有任何有意义的人使用它,尽管可能所有正在使用的浏览器仍然支持它。
请注意,声明的同名全局变量优先于同名或 ID 元素。
我将向您推荐这个答案,并指出这不是标准行为。所有浏览器都支持这种行为(在quircks模式之外没有Firefox),但我不建议使用它。在标准模式下,Firefox<14 不支持此功能
你可以依靠它。但是,如果运行站点的语言是 ASP.NET,则使用 ClientID 会更安全。如果控件的 ID 发生更改,代码将进行调整。
例如,对于运行在 ASP.NET 上的Javascript
var myCanvas = document.getElementById("<%=myCanvas.ClientID%>");
相关文章:
- 如何检查名为id的变量属性
- 为两个ID设置一个变量的正确语法
- 如何在Jquery函数中为自动完成文本区域指定一个变量作为Id
- PHP会话ID变量与AJAX一起返回
- 可以't将带有变量的id添加到类中
- Jquery按id选择变量
- 除了类、id 和文本之外,我还如何在 jQuery 中的元素中传递变量
- 为什么我们被教导将document.getElementById(“id”)分配给一个变量,然后将该变量与属性一起使用
- 如何在Javascript中将来自另一个页面的ID引用为变量
- PHP post-id无法使用Javascript变量作为id
- 将递增变量添加到Html Select的Id中
- JQuery通过变量标识元素id:多个表行
- 如果字符串保存在变量中,如何查找包含字符串的ID
- jquery没有't从DIV数据id中获取PHP变量值,只输出变量名
- 如何从包含HTML代码和许多UL标签及其ID的JavaScript变量A中获取
- ID
- 基于变量创建json对象id
- 如何使用“属性以选择器开头”中的 ID 变量来选择 jQuery 中的元素
- 将Form ID变量传递给javascript中的echo函数
- 传递会话ID变量,如果内联JS函数允许它在其他地方使用
- 遍历对象以查找两个ID变量的匹配项