前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >VUE:checkbox 单选框(单选、多选)、一选全选 / 全选一选、表格单选列实现

VUE:checkbox 单选框(单选、多选)、一选全选 / 全选一选、表格单选列实现

作者头像
微风-- 轻许--
发布2022-04-13 16:23:28
发布2022-04-13 16:23:28
5.4K00
代码可运行
举报
文章被收录于专栏:java 微风java 微风
运行总次数:0
代码可运行

1. 效果:如红框中部分。

一选全选:表头上的单选框选中则下面每行都选中。

全选一选:表中数据每行都选中时,自动选中表头中那个单选框。

2. 代码:

我的表格是作的万能表格,所有表头、表数据都来自参数,此处略。

对于表格使用及实现方法见博文:VUE : 双重 for 循环写法、table 解析任意 list

代码语言:javascript
代码运行次数:0
运行
复制
<template>
  <div>
    <table class="table table-hover">
      <thead>
        <tr>
          <th>
            <!-- 表头中的单选框 -->
            <input type="checkbox" id="selectAll">
          </th>
          <!-- 循环出表头,用英文的逗号拆分字串 -->
          <th v-for="(item,index) in headerList.split(',')" :key="index">{{item}}</th>
        </tr>
      </thead>
      <tbody>
        <!-- 循环出有多少行数据,即 list 中有多少条数据,得到 list 中的每个元素 -->
        <tr v-for="(item,index) in bodyInfoList" :key="index">
          <td>
            <!-- 表数据中首列单选框 -->
            <input type="checkbox" class="selectSingle" @click="selectSingle()">
          </td>
          <!-- 循环取到元素的每个属性,并展示 -->
          <td v-for="(val,index) in item" :key="index">{{val}}</td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
export default {
  name: "one",
  props: {
    headerList: {
      type: String, // 亦可接收 Object 类型参数
      default: "headerList"
    },
    bodyInfoList: {
      type: Array,
      default: "bodyInfoList"
    }
  },
  methods: {
    // 全选一选
    // 此方法不可写在created、mounted中,会有时无效,
    // 无效原因: html 还未加载完就已经初始化方法。
    selectSingle() {
      if ($(".selectSingle").length == $(".selectSingle:checked").length) {
        $("#selectAll").prop("checked", true);
      } else {
        $("#selectAll").prop("checked", false);
      }
    }
  },
  created() {},
  mounted() {
    // 一选全选
    $("#selectAll").click(function(e) {
      // $("#selectAll").on("click", function() { 此写法和上面一行运行效果一样
      $(".selectSingle").prop("checked", this.checked);
    });
  }
};
</script>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/01/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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