vue笔记

本文介绍如何使用Vue.js实现全选功能。通过监听checkbox数组的变化来同步全选框的状态,并利用点击事件来控制全部选中或取消选中。文章包含完整的HTML结构和JavaScript代码。

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

vue笔记

There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence.

<div class="checkbox" id="app">
		<label for="quan">
			<!-- 这里的 $event 是将当前对象传入进去,具体详情请参照vue官方文档 -->
			<input id="quan" type="checkbox" @click="checkAll($event)"> 全选
		</label>
		<label>
			<!-- v-model 双向数据绑定命令 -->
			<input class="checkItem" type="checkbox" value="apple" v-model="checkData"> apple
		</label>
		<label>
			<input class="checkItem" type="checkbox" value="banana" v-model="checkData"> banana
		</label>
		<label>
			<input class="checkItem" type="checkbox" value="orange" v-model="checkData"> orange
		</label>
	</div>
	<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
	<script>
	
		new Vue({
			el: '#app',
			data:{
				checkData: [] // 双向绑定checkbox数据数组
			},
			watch: { // 监视双向绑定的数据数组
				checkData: {
					handler(){ // 数据数组有变化将触发此函数
						if(this.checkData.length == 3){
							document.querySelector('#quan').checked = true;
						}else {
							document.querySelector('#quan').checked = false;
						}
					},
					deep: true // 深度监视
				}
			},
			methods: {
				checkAll:function(e){ // 点击全选事件函数
					var checkObj = document.querySelectorAll('.checkItem'); // 获取所有checkbox项
					if(e.target.checked){ // 判定全选checkbox的勾选状态
						for(var i=0;i<checkObj.length;i++){
							if(!checkObj[i].checked){ // 将未勾选的checkbox选项push到绑定数组中
								this.checkData.push(checkObj[i].value);
							}
						}
					}else { // 如果是去掉全选则清空checkbox选项绑定数组
						this.checkData = [];
					}
				}
			}
		});
	</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值