论坛首页 Web前端技术论坛

IE 中document.getElementsByName

浏览 3458 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-06  

IE 中使用 document.getElementsByName 与 Firefox 中的不同。

对于 A、APPLET、BUTTON、FORM、FRAME、IFRAME、IMG、INPUT、OBJECT、MAP、META、PARAM、TEXTAREA、SELECT 元素

IE 的 document.getElementsByName(e) 会获取 name 属性值为 e 的元素,同时也会获取 id 属性值为 e 的元素。

对于其他元素

IE 的 document.getElementsByName(e) 只会获取 id 属性值为 e 的元素。

 

替代方法

function $tagByAttribute(tag,attr,value){
	return Moogens.Utilities.arrayMap($TagN(tag||'*'),function(el,i){
		return el.getAttribute(attr) == value ? el : null; 
	});
}

在IE中还有一个特殊点就是:IE中div和table等元素没有name属性,使用document.getElementsByName。得不到任何值,切记!


解决办法:
  1、元素命名id和name在一个页面中最好都不要相同(避免IE混淆id和name的bug)
  2、div和table等元素结合id和document.getElementsByTagName来使用

 
   发表时间:2011-05-06  
恩,值得注意
0 请登录后投票
   发表时间:2011-05-06  
经验之谈呀,借鉴
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics