美文网首页
HTML单选表格和多选表格实现

HTML单选表格和多选表格实现

作者: ZZES_ZCDC | 来源:发表于2020-05-10 20:48 被阅读0次

    单选表格

    1
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>单选表格</title>
    </head>
    <body>
      <table class="radio-table" border>
        <thead>
          <tr>
            <th>#</th>
            <th>id</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>
              <input type="radio" name="select" value="1" onclick="clickRadio()">
            </td>
            <td>1</td>
          </tr>
          <tr>
            <td>
              <input type="radio" name="select" value="2" onclick="clickRadio()">
            </td>
            <td>2</td>
          </tr>
          <tr>
            <td>
              <input type="radio" name="select" value="3" onclick="clickRadio()">
            </td>
            <td>3</td>
          </tr>
        </tbody>
      </table>
      <h3>当前选择: <span id="checked"></span></h3>
      <script>
        function clickRadio () {
          console.log(document.querySelector('.radio-table tbody input[type=radio]:checked'))
          document.getElementById('checked').innerHTML = document.querySelector('.radio-table tbody input[type=radio]:checked').value
        }
      </script>
    </body>
    </html>
    

    多选表格

    12
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>多选表格</title>
    </head>
    <body>
      <table class="multi-table" border>
        <thead>
          <tr>
            <th><input id="js-all-checkbox" type="checkbox" onclick="checkAll(this)"></th>
            <th>id</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>
              <input type="checkbox" name="select" value="1" onclick="clickCheckbox()">
            </td>
            <td>1</td>
          </tr>
          <tr>
            <td>
              <input type="checkbox" name="select" value="2" onclick="clickCheckbox()">
            </td>
            <td>2</td>
          </tr>
          <tr>
            <td>
              <input type="checkbox" name="select" value="3" onclick="clickCheckbox()">
            </td>
            <td>3</td>
          </tr>
        </tbody>
      </table>
      <h3>当前选中: <span id="js-check-text"></span></h3>
      <script>
        var checkValues = []
        function clickCheckbox () {
          var checkDomArr = document.querySelectorAll('.multi-table tbody input[type=checkbox]:checked')
          checkValues = []
          for (var i = 0, len = checkDomArr.length; i < len; i++) {
            checkValues.push(checkDomArr[i].value)
          }
          updateText()
          var allCheckDomArr = document.querySelectorAll('.multi-table tbody input[type=checkbox]')
          var allCheckbox = document.getElementById('js-all-checkbox')
          for (var i = 0, len = allCheckDomArr.length; i < len; i++) {
            if (!allCheckDomArr[i].checked) {
              if (allCheckbox.checked) allCheckbox.checked = false
              break
            } else if (i === len - 1) {
              document.getElementById('js-all-checkbox').checked = true
              return
            }
          }
        }
        function checkAll (current) {
          var allCheckDomArr = document.querySelectorAll('.multi-table tbody input[type=checkbox]')
          if (!current.checked) { // 点击的时候, 状态已经修改, 所以没选中的时候状态时true
            checkValues = []
            for (var i = 0, len = allCheckDomArr.length; i < len; i++) {
              var checkStatus = allCheckDomArr[i].checked
              if (checkStatus) allCheckDomArr[i].checked = false
            }
          } else {
            checkValues = []
            for (var i = 0, len = allCheckDomArr.length; i < len; i++) {
              var checkStatus = allCheckDomArr[i].checked
              if (!checkStatus) allCheckDomArr[i].checked = true
              checkValues.push(allCheckDomArr[i].value)
            }
          }
          updateText()
        }
    
        function updateText () {
          document.getElementById('js-check-text').innerHTML = JSON.stringify(checkValues)
        }
      </script>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:HTML单选表格和多选表格实现

          本文链接:https://www.haomeiwen.com/subject/msajnhtx.html