2行JS代码实现Vue全选和反选
实现效果:

第一行:子选项的选中状态 等于 全选框的状态
this.letters.forEach(item => item.check = this.checkAll)
第二行: 使用数组 every 方法的特性,数组的每一项均满足某一条件时,结果为 true
也可以使用数组的
filter方法,判断返回子选项为 true的列表的长度,等同于数据源的长度时,可认定为全选状态,否则非全选
this.checkAll = this.letters.filter(item => item.check).length == this.letters.length
this.checkAll = this.letters.every(item => item.check)
完整 demo 参考:
<template>
<div>
<table border="1">
<thead>
<tr>
<th><input type="checkbox" v-model="checkAll" @change="checkAllChange"> </th>
<th>字母</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr v-for="item in letters" :key="item.id">
<td><input type="checkbox" v-model="item.check" @change="checkChange"></td>
<td>{{item.letter}}</td>
<td><button>删除</button></td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
export default {
data() {
return {
checkAll: false,
letters: [
{ letter: 'A', id: 'A', check: false },
{ letter: 'B', id: 'B', check: false },
{ letter: 'C', id: 'C', check: false },
{ letter: 'D', id: 'D', check: false },
{ letter: 'E', id: 'E', check: false },
{ letter: 'F', id: 'F', check: false }
]
}
},
methods: {
checkAllChange() {
this.letters.forEach(item => item.check = this.checkAll)
},
checkChange() {
// this.checkAll = this.letters.filter(item => item.check).length == this.letters.length // 1. 使用 filter方法
this.checkAll = this.letters.every(item => item.check) // 2. 使用 every 方法
}
}
}
</script>
<style scoped>
table {
border: 1px solid #ccc;
width: 500px;
text-align: center;
line-height: 37px;
border-collapse: collapse;
}
button {
border-radius: 5px;
border: 1px solid #ccc;
padding: 2px 10px;
}
</style>
2行JS代码实现Vue全选和反选的更多相关文章
- Vue.js实现checkbox的全选和反选
小颖之前写的代码存在一个bug,就是当你选择全选的时候去掉后面的一个选项,再点全选结果就是反的了.很感谢博客园的朋友帮我改了这个问题嘻嘻,下面一起来看看具体是怎么实现的吧. 1.html <te ...
- vue.js 批量删除跟全选,反选效果
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...
- vue全选与反选以及通过使用如何filter删除数据
在vue学习经常遇到的一些基本问题,下面是购物车里面的部分功能,分享给初学者,直接上源码: <!DOCTYPE html><html> <head> <met ...
- js中checkbox的全选和反选的实现
<head> <meta charset="utf-8"/> <script type="text/javascript"> ...
- vue中的checkbox全选和反选
前几天有个博客园的朋友问小颖,小颖之前写的vue2.0在table中实现全选和反选 .Vue.js实现checkbox的全选和反选,为什么他将里面的js复制下来,但是实现不了全选和反选.小颖当时看他 ...
- vue2.0实现在table中实现全选和反选
其实在去年小颖已经写过一篇:Vue.js实现checkbox的全选和反选 小颖今天在跟着慕课网学习vue的过程中,顺便试试如何在table中实现全选和反选,页面的css样式是直接参考慕课网的样式写的, ...
- vue2.0在table中实现全选和反选
其实在去年小颖已经写过一篇:Vue.js实现checkbox的全选和反选 小颖今天在跟着慕课网学习vue的过程中,顺便试试如何在table中实现全选和反选,页面的css样式是直接参考慕课网的样式写的, ...
- DOM操作案例之--全选与反选
全选与反选在表单类的项目中还是很常见的,电商项目中的购物车一定少不了这个功能. 下面我只就用一个简单的案例做个演示吧. <div class="wrap"> <t ...
- 简单JS全选、反选代码
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org ...
- elementUI+JS实现全选与反选
在实际项目开发过程中,遇到的需求,需要实现全选以及取消全选等功能,主要使用ElementUI + JS来实现,具体代码如下: <!DOCTYPE html> <html lang=& ...
随机推荐
- DashVector x 通义千问大模型:打造基于专属知识的问答服务
本教程演示如何使用向量检索服务(DashVector),结合LLM大模型等能力,来打造基于垂直领域专属知识等问答服务.其中LLM大模型能力,以及文本向量生成等能力,这里基于灵积模型服务上的通义千问 A ...
- Istio(七):ServiceEntry,sidecar,Envoy Filter
目录 一.模块概览 二.系统环境 三.ServiceEntry 四.sidecar 4.1 Sidecar 4.2 工作负载选择器 4.3 入口和出口监听器 五.Envoy Filter 5.1 En ...
- MyBatis反射模块源码分析
说明:本文参考至https://www.jianshu.com/p/baba62bbc107 MyBatis 在进行参数处理.结果映射时等操作时,会涉及大量的反射操作.为了简化这些反射相关操作,MyB ...
- Flutter(四):Flutter 语言 Dart基础使用
一.变量和常量 变量 var a = 1; var str = 'abc'; 常量 const PI = 3.14; 不可变对象 final PI = 3.14; final TIME = new D ...
- 将编译过的C++库迅速部署在Visual Studio新项目中
本文介绍在Visual Studio中,通过属性表,使得一个新建解决方案中的项目可以快速配置已有解决方案的项目中各类已编译好的C++第三方库的方法. 例如,我们现有一个解决方案,其中的一个项目 ...
- 查看SO KO 执行程序相关信息命令
1 查看SO 查看so库的方法__臣本布衣_新浪博客 (sina.com.cn) 1.nm -D libxxx.so 打印出符号信息. 一般这样用:nm -D libxxx.so |grep T $ ...
- LeetCode 146. LRU CacheLRU缓存机制 (C++/Java)
题目: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the ...
- EF MYSQL 出现:输入字符串的格式不正确
实体类字段和数据库类型不一致. 比如:数据库是char类型字段,程序里声明为int.
- C#.NET HTTP Request 跳过自签名证书校验。
public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain ...
- Vue学习:9.watch监听器
"watch" 监听器是一种在 Vue.js 中用于监视数据变化并执行相应操作的机制.它是 Vue 实例的一个选项,允许你监视指定的数据,并在数据变化时执行特定的逻辑.通常情况下, ...