elementUI+JS实现全选与反选
在实际项目开发过程中,遇到的需求,需要实现全选以及取消全选等功能,主要使用ElementUI + JS来实现,具体代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>elementUI+JS实现全选与反选</title>
<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="app">
<span>请选项喜欢的水果:</span>
<el-select
v-model="chooseFruit"
multiple
collapse-tags
placeholder="请选择"
style="width: 75%;border-radius: 20px;margin-top:60px;width:280px;"
@change='selectAll'>
<el-option
v-for="item in fruitLists"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script>
var vm = new Vue({
el:'#app',
data:{
fruitLists: [
{ value: 'all', label: 'ALL' },
{ value: 'apple6', label: 'app1e' },
{ value: 'orange6', label: 'orange' },
{ value: 'pear6', label: 'pear' },
{ value: 'banana6', label: 'banana' },
{ value: 'mongo6', label: 'mongo' }
],
oldFruit: [],
chooseFruit: []
},
methods:{
selectAll(val) {
var allFruit = []; //定义包含所有水果的空数组
this.fruitLists.forEach((item,index) => { //给数组赋值
allFruit.push(item.value);
})
// 定义存储上一次选中的水果,以作下一次对比
var lastFruitVal = this.oldFruit.length === 1 ? this.oldFruit[0] : [];
// 全选
if (val.includes('all')){
this.chooseFruit = allFruit;
}
// 取消全选
if (lastFruitVal.includes('all') && !val.includes('all')){
this.chooseFruit = [];
}
// 点击非全部选中,需要排除全部选中以及当前点击的选项
// 新老数据都有全部选中的情况
if (lastFruitVal.includes('all') && val.includes('all')) {
var index = val.indexOf('all')
val.splice(index, 1) // 排除全选选项
this.chooseFruit = val
}
// 全选未选,但是其他选项全部选上时,则全选选上,上次和当前都没有全选
if (!lastFruitVal.includes('all') && !val.includes('all')) {
console.log(11)
if (val.length === allFruit.length - 1){
this.chooseFruit = ['all'].concat(val)
}
}
// 储存当前最后的结果,作为下次的老数据进行对比
this.oldFruit[0] = this.chooseFruit
}
}
})
</script>
</body>
</html>
elementUI+JS实现全选与反选的更多相关文章
- JS实现全选、反选、不选
JS实现全选.反选.不选 效果图: 代码如下,复制即可使用: <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- 前端之 JS 实现全选、反选、取消选中
需求 制作如下可选表格,实现“全选”.“反选”.“取消”功能 代码示例 <!DOCTYPE html> <html lang="zh-CN"> <he ...
- 原生JS实现全选,反选
无样式,比较丑 <!DOCTYPE html><html><head><meta charset="UTF-8"><title ...
- js CheckBox 全选、反选
<h3>你最喜欢的水果是?</h3> <label><input type="checkbox"/>苹果</label> ...
- js react 全选和反选
onCheckAll = (data) => { var CheckBox = document.getElementsByName(data); for(let i=0;i<CheckB ...
- 2016年4月7日 js的全选和反选
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...
- 用 JS(JavaScript )实现多选、全选、反选
JS小例题 学习内容: 需求 总结: 学习内容: 需求 用 JavaScript 实现全选.反选.多选 实现代码 <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- Javascript全选,反选,全不选的实现代码
使用js实现全选.反选.全不选. 代码如下: <html> <head> <script type="text/javascript"> fun ...
- js及jQuery实现checkbox的全选、反选和全不选
html代码: <label><input type="checkbox" id="all"/>全选</label> < ...
随机推荐
- 【Elasticsearch 7 探索之路】(六)初识 Mapping
上一篇主要讲解什么是 URL Search 和 Request Body Search 的语法.本篇对 Mapping 的 Dynamic Mapping 以及手动创建 Mapping 进行讲解. 1 ...
- Django rest_framework 自动生成接口文档
自动生成接口文档 REST framework可以自动帮助我们生成接口文档. 接口文档以网页的方式呈现. 自动接口文档能生成的是继承自APIView及其子类的视图. 1. 安装依赖 REST fram ...
- printf 格式化打印 awk 数据处理工具
printf解析 这个玩意说白了,就是格式化打印输出. awk awk与sed都是处理数据的工具.sed是处理整行的数据,awk则比较倾向于一行当中分成数个[字段]来处理. 具体操作: 注意的几个点 ...
- C# 关于获取周,月,年时间大全
DateTime now = DateTime.Now; DayOfWeek dayOfWeek = now.DayOfWeek; : (int)dayOfWeek; //本周第一天(此结果是周一,如 ...
- 【Luogu】【关卡2-3】排序(2017年10月) 【AK】
任务说明:将杂乱无章的数据变得有规律.有各种各样的排序算法,看情况使用. 这里有空还是把各种排序算法总结下吧.qsort需要会写.. P1177 [模板]快速排序 这个题目懒得写了,直接sort了.. ...
- mysql查找字段空、不为空的方法总结
1.不为空 Select * From table_name Where id<>'' Select * From table_name Where id!='' 2.为空 Select ...
- Dubbo---注册中心
1.Multicast 注册中心 1.1 Multicast 注册中心 不需要启动 任何中心节点,只要广播地址一样,就可以互相发现. 1.2 1.3 配置 2.zookeeper 注册中心( ...
- JavaScript事件绑定的常见方式
在Javascript中,事件绑定一共有3种方式: ① 行内绑定 ② 动态绑定 ③ 事件监听 原文: https://mbd.baidu.com/newspage/data/landingsuper? ...
- Shiro学习(1)简介
1.1 简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比spring Security,可能没有Spring Securi ...
- Flex布局(一)
Flex Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局.display: flex;, 行内元 ...