当前位置: 代码迷 >> Web前端 >> document.getElementsByName在IE上的bug解决
  详细解决方案

document.getElementsByName在IE上的bug解决

热度:224   发布时间:2012-11-23 22:54:33.0
document.getElementsByName在IE下的bug解决

那天封装一个ajax边输入边提示标签,在JS脚本中使用到了document.getElementsByName,一经测试,发现在firefox,opera,safari,chrome下测试均无问题,但是,就是这个IE,就是这个我们中国人一大半以上人在使用的IE,它偏偏就出西西了,脚本执行到document.getElementsByName一句就挂了,无奈,只好退而求其次,使用以下函数替代:

?

function fixedGetElementsByName(tag, name) {
??? var tagArr = document.getElementsByTagName(tag);
??? var elements = [];?????
??? for (var i = 0; i < tagArr.length; i++)
??? {
??????? var att = tagArr[i].getAttribute("name");
??????? if (att == name) {
??????????? elements[i] = tagArr[i];
??????? }
??? }
??? return elements;
}

1 楼 liankun_8143 2010-09-27  
elements[i] = tagArr[i];有问题
elements的长度不应和tagArr的长度相同
2 楼 zhuzhuaijq 2011-09-10  
原来如此!
3 楼 hbzyb 2011-10-18  
elements[i] = tagArr[i];

elements的下标应该顺序记录, 应该单独给个变量作为下标, 单独计数
  相关解决方案