代码之家  ›  专栏  ›  技术社区  ›  Kais

带有输入复选框的表格选中/取消选中

  •  1
  • Kais  · 技术社区  · 6 年前

    当我在随附的表格中使用颜色样式进行检查时,我遇到了一个问题,但当我单击第一个复选框时,任何复选框都不会更改颜色样式。

    我粘贴代码,只使用纯javascript。

    enter function valid(chk){
        var trckk = document.getElementsByTagName('tr');
        var parent = chk.parentNode.parentNode;
        var chkcomite = document.getElementsByName('idcom');
        var len = chkcomite.length;
        for(var i=0;i<len;i++){
            if(chkcomite[i].checked === true){
                if(chkcomite[i]!=chk && chk.checked){
                    chkcomite[i].checked = false;
                    for(var i=0;i<trckk.length;i++){
                        trckk[i].style.background='';
                        trckk[i].style.color='';
                    }
                }
                parent.style.background='#EC1C24';
                parent.style.color='#FFF';  
            }else{
                parent.style.background='';
                parent.style.color='';
            }
        }
    }
    

    在这里

    你能帮助我吗?。 谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   Saeed    6 年前

    我想你必须这样写函数

    function valid(chk) {
      var parent = chk.parentNode.parentNode;
      if (!chk.checked) {
        parent.style.background = "";
        parent.style.color = "";
        return;
      }
      var trckk = document.getElementsByTagName("tr");
      var chkcomite = document.getElementsByName("idcom");
      var len = chkcomite.length;
      for (var i = 0; i < trckk.length; i++) {
        trckk[i].style.background = "";
        trckk[i].style.color = "";
      }
      for (var i = 0; i < len; i++) {
        chkcomite[i].checked = false;
        chkcomite[i].parentNode.parentNode.style.background = "";
        chkcomite[i].parentNode.parentNode.style.color = "";
      }
      chk.checked = true;
      parent.style.background = "#EC1C24";
      parent.style.color = "#FFF";
    }
    <table>
      <tr>
        <td>
          row 1
        </td>
        <td>
          <input onchange="valid(this)" name="idcom" type='checkbox'>
        </td>
      </tr>
      <tr>
        <td>
          row 2
        </td>
        <td>
          <input onchange="valid(this)" name="idcom" type='checkbox'>
        </td>
      </tr>
      <tr>
        <td>
          row 3
        </td>
        <td>
          <input onchange="valid(this)" name="idcom" type='checkbox'>
        </td>
      </tr>
    </table>