element = document.getElementById(id)
getElementById方法根据元素的id特性值返回该元素对象的引用,如果没有该元素则返回null
MDN-getlElementIdById
在IE中getElementById返回的是:
根据声明的id或者name特性的值返回第一个对象的引用
IE-getElementById
藏在IE中的Bug:关于document.getElementById()方法
此处使用IE下的document.all方法重新实现了一个getElementById
但是IE11开始通过document.all[id]方式获取元素这种功能已经移除
IE11和Edge对getElementById具体实现没有找到资料,不知道其是否已经实现了W3C的标准
建议:
- 一个页面元素id特性的值应该是唯一的,并且应该区分大小写
- 除了表单元素的name特性的值可以和该元素id值相同外,其余的情况应该避免,尤其是一个非表单元素name值和一个表单元素id值相同(用来规避IE下和标准的不兼容)
- id值不应该和mete标签的name值相同
- 不要给form元素设置name特性值参考