vue checkbox全选

本文介绍了一个使用Vue.js实现的全选与反选功能的示例,通过every和map方法控制复选框状态。代码展示了如何响应用户操作更新复选框数组,并保持全选按钮同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码很简单,用的es5 Array新增的方法every 和 map 。先来一张效果图

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
		<title></title>
	</head>

	<body>
		<div id="app">
			<p><input type="checkbox" @change="checkAllBox()" v-model="checkAll" id="all" /><label for="all">全选</label></p>
			<p v-for="(item,index) in checkBoxArr" :key="index">
				<input type="checkbox" @change="changeItemBox()" v-model="item.check" :id="item.name" />
				<label :for="item.name">{{item.name}} - {{item.check}}</label>
			</p>
		</div>

		<script>
			new Vue({
				el: '#app',
				data: {
					checkAll: false,
					checkBoxArr: [{
							id: 0,
							name: 'checkBox1',
							check: false,
						},
						{
							id: 1,
							name: 'checkBox2',
							check: false,
						},
						{
							id: 2,
							name: 'checkBox3',
							check: false,
						},
						{
							id: 3,
							name: 'checkBox4',
							check: false,
						}
					]
				},
				methods: {
					changeItemBox() {
                                                //every方法 断言数组每个元素(val.check)都为真,返回true或false
						this.checkAll = this.checkBoxArr.every((val, key) => val.check) ? true : false
					},
					checkAllBox() {
						if(this.checkAll) {
							this.checkBoxArr.map((val, k) => this.$set(val, 'check', true))
						} else {
							this.checkBoxArr.map((val, k) => this.$set(val, 'check', false))
						}
					}
				}
			})
		</script>
	</body>

</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值