Javascript var inputs=document.getElementsByTagName(“输入”); 对于(var i=0;i

Javascript var inputs=document.getElementsByTagName(“输入”); 对于(var i=0;i,javascript,dom,Javascript,Dom,总之,最大的问题是您正在检查条件中的id,并且页面上只有一个元素可以具有该id。代码中有几个问题: 您的第一个复选框没有“chk”id。我想应该是这样的 您正在传递复选框的id,然后将每个复选框的id与此id进行比较。并且其他复选框都没有id。因此,除了您单击的复选框之外,您没有选中/取消选中任何其他复选框 您正在选中第一个复选框,但单击事件的默认操作随即发生。第一个复选框被取消选中 因此,在尝试维护您的逻辑和现有代码时,我通过以下方式修复了它: 删除if中的输入[i].id==check

总之,最大的问题是您正在检查条件中的id,并且页面上只有一个元素可以具有该id。

代码中有几个问题:

  • 您的第一个复选框没有“chk”id。我想应该是这样的
  • 您正在传递复选框的id,然后将每个复选框的id与此id进行比较。并且其他复选框都没有id。因此,除了您单击的复选框之外,您没有选中/取消选中任何其他复选框
  • 您正在选中第一个复选框,但单击事件的默认操作随即发生。第一个复选框被取消选中
因此,在尝试维护您的逻辑和现有代码时,我通过以下方式修复了它:


  • 删除if中的
    输入[i].id==checkId
    条件
  • 将“chk”id添加到第一个复选框
  • 不选中/取消选中第一个复选框。将其保留为单击事件的默认行为。为此,请添加一个if To not check/uncheck“chk”复选框
完整代码段,样式设置除外:

函数checkAll(checkId){
var inputs=document.getElementsByTagName(“输入”);
对于(变量i=0;i

名称
类型
修改日期
大小

您的代码中有几个问题:

  • 您的第一个复选框没有“chk”id。我想应该是这样的
  • 您正在传递复选框的id,然后将每个复选框的id与此id进行比较。并且其他复选框都没有id。因此,除了您单击的复选框之外,您没有选中/取消选中任何其他复选框
  • 您正在选中第一个复选框,但单击事件的默认操作随即发生。第一个复选框被取消选中
因此,在尝试维护您的逻辑和现有代码时,我通过以下方式修复了它:


  • 删除if中的
    输入[i].id==checkId
    条件
  • 将“chk”id添加到第一个复选框
  • 不选中/取消选中第一个复选框。将其保留为单击事件的默认行为。为此,请添加一个if To not check/uncheck“chk”复选框
完整代码段,样式设置除外:

函数checkAll(checkId){
var inputs=document.getElementsByTagName(“输入”);
对于(变量i=0;i

名称
类型
修改日期
大小

inputs[i].id==checkId
输入[i]的if?可能重复项中的该检查是什么。id==checkId
的if?可能重复项中的该检查是什么
function checkAll(checkId){
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) { 
        if (inputs[i].type == "checkbox" && inputs[i].id == checkId) { 
            if(inputs[i].checked == true) {
                inputs[i].checked = false ;
            } else if (inputs[i].checked == false ) {
                inputs[i].checked = true ;
            }
        }  
    }  
}
var json =[{
            "Name": "zips",
            "Type": "Directory",
            "DateModified": "6/14/2018 17:22:50",
            "Size": "5 KB",
        }, {
            "Name": "presets",
            "Type": "Directory",
            "DateModified": "5/11/2018 7:32:10",
            "Size": "2 KB",
        }, {
            "Name": "workflow",
            "Type": "Directory",
            "DateModified": "6/26/2018 10:29:59",
            "Size": "6 KB",
        },{
            "Name": "software",
            "Type": "Directory",
            "DateModified": "3/16/2018 10:29:59",
            "Size": "16 KB",
        },{
            "Name": "mmm_data",
            "Type": "Directory",
            "DateModified": "6/27/2018 1:19:29",
            "Size": "3 KB",
        },{
            "Name": "jobs",
            "Type": "Directory",
            "DateModified": "4/27/2018 11:59:59",
            "Size": "3 KB",
        },
];

var string ="";

for (i in json) {
    string +='<div class="row"><div class="col-md-15 col-sm-1"><input type="checkbox" name="chk[]"></div><div class="col-md-15 col-sm-4"><span class="folders">'+json[i].Name+'</span></div><div class="col-md-15 col-sm-3"><span class="directory">'+json[i].Type+'</span></div><div class="col-md-15 col-sm-3"><span class="date-stamp">'+json[i].DateModified+'</span></div><div class="col-md-15 col-sm-1"><span class="date-size">'+json[i].Size+'</span></div></div>';
};
document.getElementsByClassName('update-data')[0].innerHTML =string
<div class="data-columns">
    <div class="row" id="hd">
        <div class="col-md-15 col-sm-1">
            <input type="checkbox" onclick="checkAll('chk');" >    
        </div>
      <div class="col-md-15 col-sm-4">
        <div id="named" class="sr">Name</div>
        </div>
      <div class="col-md-15 col-sm-3">
        <div id="type" class="sr">Type</div>
        </div>
      <div class="col-md-15 col-sm-3">
          <span id="dated" class="sr">Date Modified</span>
        </div>

      <div class="col-md-15 col-sm-1">
        <span id="size" class="sr">Size</span>
        </div>
    </div>   

    <div class="update-data">

    </div>

</div>
function checkAll(checkClass){
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) { 
        if (inputs[i].type == "checkbox" && inputs[i].classlist.contains(checkClass)) { 
            if(inputs[i].checked == true) {
                inputs[i].checked = false ;
            } else if (inputs[i].checked == false ) {
                inputs[i].checked = true ;
            }
        }  
    }  
}
function checkAll(checked){ // pass true or false to check or uncheck all
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) { 
        if (inputs[i].type == "checkbox") { 
            inputs[i].checked = checked; 
            // This way it won't flip flop them and will set them all to the same value which is passed into the function
        }  
    }  
}