Javascript循环

| 我有一个JavaScript代码段,该代码段循环遍历所有输入(表中的所有行),并且如果在单个行中选中了一个复选框,则它将检查所有行中的所有复选框。 我实际上需要它来检查同一行(不是所有行)中的第二个复选框,因此我需要编辑javascript代码段,在此位置递增
//loop through all inputs
            for(i = 0; i < inputs.length; i++) 
<script type=\"text/javascript\">
var mainchecked = false;  

    function checkAll() {

        //get all input elements
        var inputs = document.getElementsByTagName(\'input\');

        //if the box is being checked
        if(!mainchecked) {

            //loop through all inputs
            for(i = 0; i < inputs.length; i++) {
                //does it have autocheck?
                if(inputs[i].className == \'autocheck\') {
                    //then check the box!
                    inputs[i].checked = \"checked\";  
                }
            }
            mainchecked = true;
        } else {
            //box is being unchecked, uncheck everything
            for(i = 0; i < inputs.length; i++) {
                inputs[i].checked = \"\";
            }
            mainchecked = false;
        }
    }
</script>
    
已邀请:
        不要遍历所有输入,不要遍历表行并处理每一行中的输入。以下代码假定该行的控制复选框位于该行的第一个输入中,并且该功能适用​​于该行的所有其他复选框,其类将设置为\“ autocheck \”;我会留给您修改具体情况(例如,您可能需要检查是否为
type==\"checkbox\"
)。 我尚未对此进行测试,但是它应该可以给您足够的帮助。
function checkAll(){
   var _rows = document.getElementById(\"yourTableID\").rows;
   var i,
       j,
       isChecked,
       inputs;

   for (i=0; i < _rows.length; i++) {
      inputs = _rows[i].getElementsByTagName(\"input\");
      isChecked = inputs[0].checked;
      for (j=1; j < inputs.length; j++) {
         if (inputs[j].className == \"autocheck\") {
            inputs[j].checked = isChecked;
         }
      }
   }

}
更新:在您的评论中看到,您似乎正在从控制复选框的
onclick
触发此功能。如果是这样,那么您可以将对该复选框的引用传递给函数,然后仅处理其所在的行,如下所示:
<input ... onclick=\"checkAll(this);\" ...>

function checkAll(cb){
       var _row = cb.parentNode.parentNode,
           j,
           isChecked = cb.checked,
           inputs;

          inputs = _row.getElementsByTagName(\"input\");
          for (j=0; j < inputs.length; j++) {
             if (inputs[j].className == \"autocheck\") {
                inputs[j].checked = isChecked;
             }
          }
    }
Google \“ mdc parentnode \\”了解更多信息。     

要回复问题请先登录注册