IE6 IE7 IE8 中 getElementsByName 方法的参数不区分大小写
来源: 阅读:1968 次 日期:2015-04-22 10:28:10
温馨提示: 小编为您整理了“IE6 IE7 IE8 中 getElementsByName 方法的参数不区分大小写”,方便广大网友查阅!

标准参考

document.getElementsByName(elementName) 方法是 HTMLDocument 接口提供的方法,该方法传入的参数应该是目标元素的 name 属性的值:

NodeList getElementsByName(in DOMString elementName);

目标元素的 name 是一个大小写敏感的字符串,仅 BUTTON, TEXTAREA, APPLET, SELECT, FORM, FRAME, IFRAME, IMG, A, INPUT, OBJECT, MAP, PARAM, META 元素允许有 name 属性1,并且 name 属性可以不是唯一的。

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

关于元素的 name 属性的详细信息,请参考 HTML 4.01 Index of Attributes 中的内容。

注:

1. 在 IE 中,只有这些标签有 'name' 属性时,可以使用 document.getElementsByName(elementName) 方法获取他们创建的 DOM 元素,但在其他浏览器中,有 'name' 属性的其他标签也可以用这种方法获取。即

可以在其他浏览器中通过使用 document.getElementsByName('test')[0] 来获取,但在 IE 中却不行,得到的将是 undefined。

问题描述

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

造成的影响

如果作为参数的 name 和目标元素的实际 name 的大小写不匹配,在某些浏览器中将无法获取该元素或者得到的元素与预计得到的元素不一致。

受影响的浏览器

IE6 IE7 IE8

问题分析

分析以下代码:

以上代码中,目标元素的 name 分别为 'aa','aA' 和 'Aa',但在传入 document.getElementsByName 时的参数分别为 'AA' 和 'aa',在严格区分大小写的情况下,仅 document.getElementsByName("aa") 能获得一个 INPUT 元素。

在各浏览器输出如下:

IE6 IE7 IE8其他浏览器

3 30 1

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

解决方案

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

更多信息请查看IT技术专栏

更多信息请查看 脚本栏目
上一篇: JavaScript的继承
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00) 版权所有:
云南网警报警专用图标
Baidu
map