Vue 全选/取消全选,反选/取消反选
这是一个组件:
<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 全选/取消全选,反选/取消反选的更多相关文章
- vue实现功能 单选 取消单选 全选 取消全选
vue实现功能 单选 取消单选 全选 取消全选 代码部分 <template> <div class=""> <h1>全选框</h1> ...
- python: jquery实现全选 反选 取消
引入这个jquery-1.12.4.js jquery实现全选 反选 取消 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitio ...
- js jqery判断checkbox是否选中,全选,取消全选,反选,选择奇数偶数项
// 一,判断选中 // js var ischecked2 = function(){ // this.checked == true $(document.getElementsByTagName ...
- jQuery 复选框全选/取消全选/反选
jQuery实现的复选框全选/取消全选/反选及获得选择的值. 完整代码: <!DOCTYPE html> <html> <head> <script type ...
- vue全选和取消全选
代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- 使用AngularJS实现简单:全选和取消全选功能
这里用到AngularJS四大特性之二----双向数据绑定 注意:没写一行DOM代码!这就是ng的优点,bootstrap.css为了布局,JS代码也只是简单创建ng模块和ng控制器 效果: < ...
- 点击div全选中再点击取消全选div里面的文字
想做一个就是点击一个div然后实现的功能是div里面的文字都成选中状态,然后就可以利用浏览器的自带的复制功能,任意复制在哪里去了 在网上百度了一下 然后网上的答案感觉很大的范围 然后一些搜索 然后就锁 ...
- Jquery CheckBox复选框 全选/取消全选 最佳实现方式 参考案例
<input id="chkAll" type="checkbox" />全选/取消全选</div> <asp:Repeater ...
- jQuery--checkbox全选/取消全选
用JavaScript使页面上的一组checkbox全选/取消全选,逻辑很简单,实现代码也没有太难的语法.但使用jQuery实现则更简单,代码也很简洁,精辟! jQuery版本:1.3.2 <h ...
随机推荐
- Java——Java泛型
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定 ...
- Hadoop-wordCount实例代码编写(Hadoop学习第四天)
1.新建一个maven项目2.pom文件中引入以下jar包<dependency> <groupId>org.apache.hadoop</groupId> < ...
- 李婷华 201771010113 《面向对象程序设计(java)》第一周学习总结
第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com 薄荷蓝莓 程序设计评测:https://pintia.cn/ 1957877441@q ...
- 【FPGA篇章一】FPGA工作原理:详细介绍FPGA实现编程逻辑的机理
欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 FPGA(Field Programmable Gate Array),即现场可编程逻辑门阵列,它是作为专用集成电路(ASIC)领域中一种半 ...
- 【Spark】这一篇或许能让你大概了解如何通过JavaAPI实现DataFrame的相关操作
文章目录 需求概述 步骤 一.创建Maven工程并导包 二.选用第一种方法:利用反射机制配合样例类构建DataFrame 开发代码 选用第二种方法:通过StrucType配合Row构建DataFram ...
- 标准IDOC同步采购订单
目录 1功能说明 4 2功能实现 4 2.1创建逻辑系统并分配集团(SALE) 4 2.2维护RFC目标(SM59) 5 2.3在发送端创建模型视图(BD64) 5 2. ...
- 模板引擎 Thymeleaf 动态渲染 HTML
1.添加依赖 <!-- Thymeleaf 模板引擎 --> <dependency> <groupId>org.thymeleaf</groupId> ...
- 散列表PTA判断
1-1 在散列表中,所谓同义词就是具有相同散列地址的两个元素. (1分) T F 作者 DS课程组 单位 浙江大学 1-2 采用平方探测冲突解决策略(hi(k)=(H(k)+ ...
- Java SPI机制简述
概述 SPI全称Service Provider Interface,是一种为框架提供良好扩展性的机制.一般由框架开发方定义接口规范(如java.sql.Driver),而第三方厂商为之提供自己的实现 ...
- linux --批量修改文件内容
由于目前测试的BIOS有一个option 发生了改变,因此我们需要在之前写好的脚本上进行修改,将旧的option 改为新的选项,因此在此处用到了批量修改文件中的内容: 1. perl 命令替换: pe ...