前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTML单选表格和多选表格实现

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

作者头像
治电小白菜
发布2020-08-25 15:59:46
7.5K0
发布2020-08-25 15:59:46
举报
文章被收录于专栏:技术综合技术综合技术综合

单选表格

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>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 单选表格
  • 多选表格
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档