jquery实现复选框checkbox全选,取消全选

jquery实现复选框checkbox全选,取消全选


jquery实现复选框checkbox全选,取消全选)

  • 前言

结合一部分

第一种方法:

//全选 
		$("#checkAll").click(function() {
			if (this.checked) {
				$("input[name='selectFlag']:checkbox").each(function() { //遍历所有的name为selectFlag的 checkbox
							$(this).attr("checked", true);
						})
			} 
		})
		//取消全选 
		$("#delCheckAll").click(function() {
			if (this.checked) {
				$("input[name='selectFlag']:checkbox").each(function() { //遍历所有的name为selectFlag的 checkbox
							$(this).attr("checked", false);
						})
			} 
		})

更简单直接的一种:

$("#checkAll").click(function() {
				if (this.checked) {
					$("input[name='selectFlag']:checkbox").each(function() { //遍历所有的name为selectFlag的 checkbox
								$(this).attr("checked", true);
							})
				} else {   //反之 取消全选 
					$("input[name='selectFlag']:checkbox").each(function() { //遍历所有的name为selectFlag的 checkbox
								$(this).attr("checked", false);
								//alert("f");
							})
				}
			})

注释 第二种方法会在二次失效
使用:不用each来遍历;改用.prop防止只能选择一次 $(“input[name=‘selectFlag’]:checkbox”).prop(“checked”, true);

  • 第二部分

参考了一下别人jQuery复选框操作的代码,发现在使用attr()来处理属性赋值的时候会出现第一次功能正常,第二次再点击时无反应的问题。
这里使用prop()来进行操作会正常。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<ul id="list">   
   <li><label><input type="checkbox" name="step" value="1"> 1.我是记录来的呢</label></li> 
   <li><label><input type="checkbox" name="step" value="2"> 2.哈哈,真的太天真了</label></li> 
   <li><label><input type="checkbox" name="step" value="3"> 3.爱上你是我的错吗?</label></li> 
   <li><label><input type="checkbox" name="step" value="4"> 4.从开始你就不应用爱上我</label></li> 
   <li><label><input type="checkbox" name="step" value="5"> 5.喜欢一个人好难</label></li> 
   <li><label><input type="checkbox" name="step" value="6"> 6.你在那里呢</label></li> 
</ul> 
<input type="checkbox" id="all"> 
<input type="button" value="全选" class="btn" id="selectAll">   
<input type="button" value="全不选" class="btn" id="unSelect">   
<input type="button" value="反选" class="btn" id="reverse">   
<input type="button" value="获得选中的所有值" class="btn" id="getValue">

<script type="text/javascript">
$(function(){
    //全选
    $("#all").click(function(){
        if (this.checked) {
            $("#list :checkbox").prop("checked",true); 
        }else{
            $("#list :checkbox").prop("checked",false);
        }
    });

    $("#selectAll").click(function(){
        $("#list :checkbox,#all").prop("checked",true);
    });

    $("#unSelect").click(function(){
        $("#list :checkbox,#all").prop("checked",false);
    });

    $("#reverse").click(function(){
        $("#list :checkbox").each(function(){
            $(this).prop("checked",!$(this).prop("checked"));
        });
        allCheck();
    });

    //设置全选复选框 
    $("#list :checkbox").click(function(){ 
        allCheck(); 
    }); 

    $("#getValue").click(function(){
        var valArr = new Array;
        $("#list input[name='step']").each(function(i){
            if($(this).prop("checked")){
                valArr[i]=$(this).val();
            }
        });
        var vals = valArr.join(',');
        alert(vals);
    })

    function allCheck(){
        var count = $("#list :checkbox").size();
        var cut = 0;
        $("#list :checkbox").each(function(){
            if ($(this).prop("checked") == true) {
                cut++;
            }
        });
        // alert(cut,count);
        if (cut == count) {
            $("#all").prop("checked",true);
        }else{
            $("#all").prop("checked",false);
        }
    }
})
    
</script>

根据跟定的值,选中复选框,使用场景 考试题目答案勾选

//遍历某个class属性下的checkbox
$('.muti-opt-items input:checkbox').each(function () {
         //需要选中的值
         var answer = "ABCD";
         var arr = answer.split("");
         var check = $(this);//遍历下的每个checkbox
         //遍历数组
         $.each(arr,function (index,value) {
               if(check.attr("value")==value){
                     check.attr("checked",true);
                }
          })
});

jquery格式化时间

function timeStamp2String(time){
        var datetime = new Date();
        datetime.setTime(time);
        var year = datetime.getFullYear();
        var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
        var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
        var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();
        var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
        var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
        return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马全鑫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值