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来使用

本文探讨了在Internet Explorer (IE) 和 Firefox 中使用 document.getElementsByName 方法的不同行为,特别是关于如何处理 name 和 id 属性相同的元素。此外,还提供了解决方案及替代方法,帮助开发者避免浏览器间的兼容性问题。
2539

被折叠的 条评论
为什么被折叠?



