这是一个组件:

<template>
<div>
<div>
<input type="checkbox" v-model="isCheckAll" @change="checkedAll"> 全选/取消全选
<input type="checkbox" v-model="isCheckInverse" @change="checkedInverse"> 反选/取消反选
</div>
<div v-for="(list, index) in checkboxLists">
<input type="checkbox" v-model="checkedLists" :value="list.id"> {{ list.product_name }}
</div>
<div>全选/反选 状态:{{ isCheckAll }}</div>
<div>选中列表:{{ checkedLists }}</div>
</div>
</template> <script>
export default {
data () {
return {
// 总数据
checkboxLists: [
{
id: ,
product_name: '银手链'
},
{
id: ,
product_name: '银手镯'
},
{
id: ,
product_name: '银耳环'
}
],
// 是否全选
isCheckAll: false,
// 是否反选
isCheckInverse: false,
// 选中列表
checkedLists: []
}
},
methods: {
// 全选/取消全选
checkedAll () {
// 初始化反选/取消反选
this.isCheckInverse = false
// 判断 全选/反选 是否点击
if (this.isCheckAll) {
let arr = []
// 循环全部数据并push到一个数组中
this.checkboxLists.forEach(element => {
arr.push(element.id)
});
// 选中列表赋值,此时的arr已经是全部数据了,直接赋值就等于选中所有checkbox
this.checkedLists = arr
} else {
// 如果 全选/反选 为假,则选中列表初始化
this.checkedLists = []
}
},
// 反选/取消反选
checkedInverse () {
// 这里不能直接用this.xxx赋值,具体参考https://www.cnblogs.com/nonsec/p/9322359.html
let tempArr = JSON.parse(JSON.stringify(this.checkboxLists))
let arr = []
var obj = {} // 先循环已勾选的,赋值给对象,对象key和value都为勾选的值
for (const i in this.checkedLists) {
obj[this.checkedLists[i]] = this.checkedLists[i]
} // 循环总的,然后判断上面对象的属性是否存在,如果存在则加入数组
for (const j in tempArr) {
if (!obj.hasOwnProperty(tempArr[j].id)) {
arr.push(tempArr[j].id)
}
} // 最后赋值,实现反选/取消反选功能
this.checkedLists = arr
}
},
watch: {
// 监听选中列表属性,当选中列表发生变化时,会运行此方法
checkedLists (newValue, oldValue) {
// 每次运行时,判断当前选中列表中的数组个数是否等于全部数据的数组个数,如果到某一时刻全等,则全选按钮为选中
if (newValue.length === this.checkboxLists.length) {
this.isCheckAll = true
} else {
// 否则为全不选
this.isCheckAll = false
}
}
}
}
</script>

Vue 全选/取消全选,反选/取消反选的更多相关文章

  1. vue实现功能 单选 取消单选 全选 取消全选

    vue实现功能 单选 取消单选 全选 取消全选 代码部分 <template> <div class=""> <h1>全选框</h1> ...

  2. python: jquery实现全选 反选 取消

    引入这个jquery-1.12.4.js jquery实现全选 反选 取消 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitio ...

  3. js jqery判断checkbox是否选中,全选,取消全选,反选,选择奇数偶数项

    // 一,判断选中 // js var ischecked2 = function(){ // this.checked == true $(document.getElementsByTagName ...

  4. jQuery 复选框全选/取消全选/反选

    jQuery实现的复选框全选/取消全选/反选及获得选择的值. 完整代码: <!DOCTYPE html> <html> <head> <script type ...

  5. vue全选和取消全选

    代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...

  6. 使用AngularJS实现简单:全选和取消全选功能

    这里用到AngularJS四大特性之二----双向数据绑定 注意:没写一行DOM代码!这就是ng的优点,bootstrap.css为了布局,JS代码也只是简单创建ng模块和ng控制器 效果: < ...

  7. 点击div全选中再点击取消全选div里面的文字

    想做一个就是点击一个div然后实现的功能是div里面的文字都成选中状态,然后就可以利用浏览器的自带的复制功能,任意复制在哪里去了 在网上百度了一下 然后网上的答案感觉很大的范围 然后一些搜索 然后就锁 ...

  8. Jquery CheckBox复选框 全选/取消全选 最佳实现方式 参考案例

    <input id="chkAll" type="checkbox" />全选/取消全选</div> <asp:Repeater ...

  9. jQuery--checkbox全选/取消全选

    用JavaScript使页面上的一组checkbox全选/取消全选,逻辑很简单,实现代码也没有太难的语法.但使用jQuery实现则更简单,代码也很简洁,精辟! jQuery版本:1.3.2 <h ...

随机推荐

  1. django项目的uwsgi方式启停脚本

    #!/bin/sh NAME="fushentang" if [ ! -n "$NAME" ];then echo "no arguments&quo ...

  2. B. Long Path dp

    https://codeforces.com/problemset/problem/407/B 这个题目是一个dp,有那么一点点的递归的意思,这个应该算一个找规律的dp, dp[i]定义为第一次到第i ...

  3. 服务器3C直连网络好呢还是3C精品网络更好呢?

    3C直连网络:通过用自有AS号与中国电信CTcc,中国联通CUcc,中国移动CMcc企业网进行直接接驳,提供对大陆方向有更高要求的网络接入服务. 简称:国内3c直连. 3C精品专线网:在3C直连基础上 ...

  4. 【Kafka】Flume整合Kafka

    目录 需求 一.Flume下载地址 二.上传解压Flume 三.配置flume.conf 四.启动flume 五.测试整合 需求 实现flume监控某个目录下面的所有文件,然后将文件收集发送到kafk ...

  5. ABAP 内表与XML转换

    1需求说明 在系统交互中需要将SAP内表转换为XML文件,发送给其他系统,并且将其他系统返回的XML文件转换为SAP内表. 2创建转换编辑器 事务代码:STRANS 选择简单转换 以图形方式编辑 右键 ...

  6. 装完B就跑,这几个Linux指令真的Diǎo

    本文介绍一些有趣的指令,实用或者可以装逼,不妨自己也来试试看: 文章目录 1 故事的开局 2 杰哥的表演 2.1 sl 2.2 htop 2.3 gcp 2.4 hollywood 2.5 cmatr ...

  7. 超简单笔记本改造nas--一个萌新的摸爬滚打

    最近好久没更新,你们有没有想我啊(手动滑稽)咳咳,言归正传,如同标题,最近闲来无事,打算利用家里的闲置笔记本电脑搭建一个nas.**注意:本文不涉及群晖以及相关专业NAS服务供应商!!!**nas分两 ...

  8. 蓝桥杯备战(一)3n+1问题

    [问题描述] 考虑如下的序列生成算法:从整数 n 开始,如果 n 是偶数,把它除以 2:如果 n 是奇数,把它乘 3 加1.用新得到的值重复上述步骤,直到 n = 1 时停止.例如,n = 22 时该 ...

  9. JUC之CountDownLatch源码分析

    CountDownLatch是AbstractQueuedSynchronizer中共享锁模式的一个的实现,是一个同步工具类,用来协调多个线程之间的同步.CountDownLatch能够使一个或多个线 ...

  10. 集群、分布式、SOA、微服务、webService等思想的整理

    引子:前几天甲方问我,他用wpf弄个界面,能不能通过其他语言给他传输数据,我由此想到了webservice(此时此刻,我也没有用过webServices),作日翻阅了一些资料,对这块技术有了个大概的了 ...