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=& ...
随机推荐
- git cherry-pick合并其它分支的某次提交(commits)到当前分支
git cherry-pick 可以选择某一个分支中的一个或几个commit(s)来进行操作. 例如,假设我们有个稳定版本的分支,叫v2.0.0,另外还有个开发版本的分支v3.0.0,我们不能直接把两 ...
- linux下YUM工具的使用:yum安装/升级/查看/搜索/卸载软件包
目录 一.关于软件包 二.关于YUM 三.yum工具的使用 3.1 yum安装软件功能 3.2 yum升级软件包功能 3.3 yum查看,搜索功能 3.4 yum卸载功能 3.5 yum安装软件包组功 ...
- 基于 ESP8266_RTOS_SDK 实现声控灯
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdint.h&g ...
- tkinter小例子
from tkinter import * def on_click(): label['text'] = text.get() root = Tk(className='hello') root.m ...
- jquery的class操作 css样式操作
<button>切换</button> <div class="div1">123</div> <sc ...
- ABC346
D 枚举是哪一位相同,情况为 \(00\) 还是 \(11\),然后用前缀和和后缀和求一下即可. \(pre_{j,i}\) 表示第一位为 \(j\),前 \(i\) 位的每两个相同的字符均不相同的情 ...
- C#.NET 读取PFX私钥证书并导出PEM格式私钥
项目nuget引用 BouncyCastle. 读取证书 X509Certificate2 x509 = new X509Certificate2(lblPfxPath.Text, txtPfxPwd ...
- vm ware cent os 共享文件夹
1.VM中安装vm-tools 2.在VM 虚拟机设置中添加共享文件夹. 3.重启虚拟机 4.在/mnt/ 里新建一个名为"win"的文件夹 5.在cent os 中执行: vmw ...
- idea中vue的启动方式
1.选取 2.添加 3.配置 4.启动 启动前先 在终端 执行 npm install 命令 再启动
- Windows 下自动预约申购 i茅台
今天分享一个自动预约抢茅子的工具! 前期准备工作: 1.需安装:.Net6 依赖 (根据操作系统选择 x64 或 x86 版本进行下载.) 安装软件 1.软件下来下来之后,解压并进入软件目录,我们双击 ...