IE6 IE7 IE8(Q) 中的 getElementById 方法的参数不区分大小写

转载自

http://w3help.org/zh-cn/causes/SD9002

标准参考

getElementById 是 Document 接口提供的方法,用于获取一个元素,该方法传入的参数应该是目标元素的 id 属性的值:

Element getElementById(in DOMString elementId);

目标元素的 id 是一个大小写敏感的字符串,并且该 id 在文档内应该是唯一的。

关于 getElementById 方法的详细信息,请参考 DOM-1-HTML Interface HTMLDocument 及 DOM-2-Core Interface Document 中的相关内容。

关于元素的 id 属性的详细信息,请参考 HTML 4.01 规范 7.5.2 Element identifiers: the id and class attributes 中的内容。

问题描述

使用 document.getElementById 方法获取页面内的元素时,在 IE6 IE7 IE8(Q) 中的 id 是大小写不敏感的。

造成的影响

如果作为参数的 id 和目标元素的实际 id 的大小写不匹配,在某些浏览器中将无法获取该元素。

受影响的浏览器

IE6 IE7 IE8(Q)  

问题分析

分析以下代码:

<body>
<div id="Ab"></div>
</body>
<script type="text/javascript">
alert(document.getElementById("aB"));
</script>

以上代码中,目标元素的 id 为 'Ab',但在传入 document.getElementById 时的参数为 'aB',在严格区分大小写的情况下,二者并不匹配。

在各浏览器输出如下:

IE6 IE7 IE8(Q)其他浏览器
[object] null

可见:在 IE6 IE7 IE8(Q) 中,使用 document.getElementById 获取页面元素时,不区分参数的大小写。

另外,对于 IE 支持的以 documnt.all(id) 形式获取元素的方式,在 IE6 IE7 IE8(Q) 中也不区分参数的大小写。

解决方案

在使用 document.getElementById 获取页面元素时,应保证作为参数的 id 与目标元素的实际 id 值完全一致。

posted on 2016-01-25 14:37  zgz2016  阅读(415)  评论(0编辑  收藏  举报

导航