<html>
<body>
<input type="checkbox" name="chk" /> 
<input type="checkbox" name="chk" /> 
<input type="checkbox" name="chk" /> <script type="text/javascript">
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; 

alert(getElementsByName("input","chk"));</script></body>
</html>

解决方案 »

  1.   

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

    alert(getElementsByName("input","chk"));
      

  2.   

    我也很郁闷,我用的那系统里放for循环就是不行,提示出错保存不了! 谢谢二楼的回答,但不行,哪位再帮我改下,运行结果跟我上面发的一样就行了,谢谢!!
      

  3.   

    这段代码应该没问题吧,出错的话,应该是其它地方
    不过有个地方可以改进,就是去掉 count 变量,改为 elements.push(elts[i]);
      

  4.   

    代码本身是没问题,就因为那网站系统问题,只能用FOR IN 。。
    改好了:
    <html>
    <body>
    <input type="checkbox" name="chk" /> 
    <input type="checkbox" name="chk" /> 
    <input type="checkbox" name="chk" /> <script type="text/javascript">
    function getElementsByName(tag,eltname){ 
      var elts=document.getElementsByTagName(tag); 
      var count=0; 
      var elements=[]; 
      var i = 0;
      for(var elt in elts){  
         if(elts[i].getAttribute("name")==eltname){
            elements[count++]=elts[i];
         }
     i++;
     if(i==elts.length) {
    break;
     }
      }  
      return elements; } 
    alert(getElementsByName("input","chk"));</script></body>
    </html>
      

  5.   

    getElementsByTagName返回的不是一个js数组无法用for in的