全选、全不选以及获取选中的值

HTML部分的布局是下面这样的:

		<ul id="list">
			<li><label ><input type="checkbox" value="1" />1.番茄</label></li>
			<li><label ><input type="checkbox" value="2" />2.黄瓜</label></li>
			<li><label ><input type="checkbox" value="3" />3.青椒</label></li>
			<li><label ><input type="checkbox" value="4" />4.蒜苗</label></li>
			<li><label ><input type="checkbox" value="5" />5.韭菜</label></li>
		</ul>
		<input type="checkbox"  id="All"/>
		<input type="button" value="全选" id="selectAll" />
		<input type="button" value="全不选" id="unSelect" />
		<input type="button" value="反选" id="reverse" />
		<input type="button" value="获取选中的值" id="getValue" />

关于javascript部分是这样写的:

		<script>
			//全选或全不选
			$('#All').click(function(){
				if(this.checked) {
					$('#list :checkbox').prop('checked',true)
				}else {
					$('#list :checkbox').prop('checked',false)
				}
			})
			
			//全选
			$('#selectAll').click(function(){
				$('#list :checkbox').prop('checked',true);
				$('#All').prop('checked',true)
			})
			
			//全不选
			$('#unSelect').click(function(){
				$('#list :checkbox').prop('checked',false);
				$('#All').prop('checked',false)
			})
			
			//反选
			$('#reverse').click(function(){
				$('#list :checkbox').each(function(){
					$(this).prop('checked',!$(this).prop('checked'))
				})
				if ($('#list :checkbox').length >$('#list :checkbox:checked').length) {
					$('#All').prop('checked',false)
				}else{
					$('#All').prop('checked',true)
				}
			})

			
			//获取得到的值
			var arr = []
			var i = -1;
			$('#getValue').click(function(){
				$('#list :checkbox:checked').each(function(){
					i ++;
					arr[i]=$(this).val();
				})
				console.log(arr)
			})
			
		</script>

最终实现效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下方式实现: HTML: ```html <!-- 假设你有一组 checkbox,它们的 class 都是 "checkbox-item" --> <input type="checkbox" id="check-all" /> 全选/全不选 <input type="checkbox" class="checkbox-item" /> <input type="checkbox" class="checkbox-item" /> <input type="checkbox" class="checkbox-item" /> <!-- 其他 checkbox 组成的列表 --> ``` JS: ```javascript var checkAll = document.getElementById('check-all'); var checkBoxItems = document.querySelectorAll('.checkbox-item'); checkAll.addEventListener('change', function() { var isChecked = checkAll.checked; for (var i = 0; i < checkBoxItems.length; i++) { checkBoxItems[i].checked = isChecked; } }); for (var i = 0; i < checkBoxItems.length; i++) { checkBoxItems[i].addEventListener('change', function() { var isAllChecked = true; for (var j = 0; j < checkBoxItems.length; j++) { if (!checkBoxItems[j].checked) { isAllChecked = false; break; } } checkAll.checked = isAllChecked; }); } ``` 解释一下,首先获取全选/全不选按钮和所有的 checkbox,然后给全选/全不选按钮添加 change 事件监听器,在事件处理函数中,将所有的 checkbox 的 checked 属性设为当前全选/全不选按钮的 checked 属性。 同时,给每个 checkbox 添加 change 事件监听器,在事件处理函数中,先遍历所有 checkbox 确定是否有未选中的,如果有就不是全选状态,否则就是全选状态,将全选/全不选按钮的 checked 属性设为对应的状态即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值