页面有多个名字相同的li元素,想通过document.getElementsByName()获取元素数组。在firefox正常,但在ie下就无法工作,返回的length为0。

网上一查,还真是如此。IE的getElementsByName只对表单元素有用(或部分元素有用)。通过getElementsByTagName找出所有元素,在通过元素的getAttribute方法筛选。
 

function getElementsByName(tag,eltname){
  var elts=document.getElementsByTagName(tag);
  var count=0;
  var elements=[];
  for(var i=0;i<elts.length;i++){
     if(elts[i].getAttribute("name")==eltname){
        elements[count++]=elts[i];
     }
  }
  return elements;
}

转载本站文章请注明,转载自:神秘果

本文链接: http://www.shenmiguo.com/archives/2009/268_ie-getelementsbyname-bug.html

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <font color="" face="" size=""> <span style="">