我在用Js遍历HTML checkbox 控件的时候,无法找到控件的值,具体代码如下: 
JS: 
<script language="javascript"> 
            var arrRole=new Array(); 
            arrRole=[ <%=authority%>]; 
              
            
            var objs = document.getElementsByTagName("input"); 
          
            
          for(var j=0;j < arrRole.length - 1;j++) 
      { 
            
            //var objs = document.getElementById("chk"); 
            
    for(var i=0;i <= objs.length; i++)  
      {  
        
        if(objs.type == "checkbox"  && objs[i].value == arrRole[j]) 

    objs[i].checked = true; 
}   }  } 
</script> HTML控件: <INPUT  onclick="Select_Item3(this.checked)" type="checkbox" value="1" name="ckboxItem3"> 现在的问题是objs循环的时候,objs.length一直为零,还望各位大哥指点,谢谢! 

解决方案 »

  1.   

    <INPUT type="checkbox" value="1" name="ckboxItem3"> 
    <INPUT type="checkbox" value="1" name="ckboxItem2">
    <INPUT type="checkbox" value="1" name="ckboxItem1"> 
    <script language="javascript"> 
    var objs = document.getElementsByTagName("input");
    for(var i=0;i <= objs.length; i++)  
    {  
        if(objs[i].type == "checkbox") 

         objs[i].checked = true; 

    }
    </script>
      

  2.   

    这位大哥,value的值必须要保持一致吗?
      

  3.   

    和value沒關系<INPUT type="checkbox"> 
    <INPUT type="checkbox"> 
    <INPUT type="checkbox"> 
    <script language="javascript"> 
    var objs = document.getElementsByTagName("input"); 
    for(var i=0;i <= objs.length; i++)  
    {  
        if(objs[i].type == "checkbox") 

        objs[i].checked = true; 


    </script>
      

  4.   

    getElementById
    是getElement
    不是getElements
    所以只返回一个
      

  5.   

    应该是i<objs.length而不是<=吧
      

  6.   

    页面加载顺序问题导致:
    你的JS代码在input控件的HTML代码之前,
    当JS执行的时候,input控件还没有下载,对象数组当然是0.
    应该将JS代码放在input控件的HTML代码之后;
    或者将JS代码封装成函数,页面完全下载后用事件触发执行.