jQuery对checkbox的各种操作【prop 和 attr区别】

prop()获取匹配的元素的属性值。
这个方法是jquery1.6以后出来的,用来区别之前的.attr()方法.

区别最大的一点就是:布尔型的属性,1.6以后都是用.prop()方法就好了。
这个布尔型的属性,再解释一下,是属性值只有true|false的属性。
还有种情况就是只添加属性名,不需要写属性值的就可以生效的也同样使用.prop()方法。比如:checked、disable这样的,其实它们说到底还是属于布尔型的属性。

1.添加属性名称该属性就会生效应该使用prop();
2.是有true,false两个属性使用prop();
3.其他则使用attr();

//注意: 操作checkbox的checked,disabled属性时jquery1.6以前版本用attr,1.6以上(包含)建议用prop

//1、根据id获取checkbox
$("#cbCheckbox1");

//2、获取所有的checkbox
$("input[type='checkbox']");//or
$("input[name='cb']");

//3、获取所有选中的checkbox
$("input:checkbox:checked");//or
$("input:checkbox[type='checkbox']:checked");//or
$("input[type='checkbox']:checked");//or
$("input:checkbox[name='ck']:checked");

//4、获取checkbox值
//用.val()即可,比如:
$("#cbCheckbox1").val();


//5、获取多个选中的checkbox值
var vals = [];
$('input:checkbox:checked').each(function (index, item) {
vals.push($(this).val());
});

//6、判断checkbox是否选中(jquery 1.6以前版本 用  $(this).attr("checked"))
$("#cbCheckbox1").click(function () {
if ($(this).prop("checked")) {
alert("选中");
} else {
alert("没有选中");
}
});

//7、设置checkbox为选中状态
$('input:checkbox').attr("checked", 'checked');//or
$('input:checkbox').attr("checked", true);

//8、设置checkbox为不选中状态
$('input:checkbox').attr("checked", '');//or
$('input:checkbox').attr("checked", false);

//9、设置checkbox为禁用状态(jquery<1.6用attr,jquery>=1.6建议用prop)
$("input[type='checkbox']").attr("disabled", "disabled");//or
$("input[type='checkbox']").attr("disabled", true);//or
$("input[type='checkbox']").prop("disabled", true);//or
$("input[type='checkbox']").prop("disabled", "disabled");

//10、设置checkbox为启用状态(jquery<1.6用attr,jquery>=1.6建议用prop)
$("input[type='checkbox']").removeAttr("disabled");//or
$("input[type='checkbox']").attr("disabled", false);//or
$("input[type='checkbox']").prop("disabled", "");//or
$("input[type='checkbox']").prop("disabled", false);

案例如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <h3>jQuery操作checkbox
    </h3>
    <input type="checkbox" id="cbCheckbox1" value="1" />
    <input type="checkbox" value="2" />
    <input type="checkbox" disabled="disabled" value="3" />
    <input type="checkbox" value="4" />
    <input type="checkbox" disabled="true" value="5" />
    <br />
    <input type="button" id="btnDisabled" value="禁用" onclick="fn_disabled();" />
    <input type="button" id="Button1" value="启用" onclick="fn_enable();" /><br />
    <input type="button" id="Button2" value="获取选中的值" onclick="getCheckedValues();" /><br />
    <input type="button" id="Button3" value="选中第二个" onclick="checkedSecond();" />
    <input type="button" id="Button4" value="取消选中第二个" onclick="uncheckedSecond();" /><br />
</body>
</html>
<script src="js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript">

    function fn_disabled() {
        //$("input[type='checkbox']").attr("disabled", "disabled");
        //$("input[type='checkbox']").attr("disabled", true);
        $("input[type='checkbox']").prop("disabled", true);
        //  $("input[type='checkbox']").prop("disabled", "disabled");
    }

    function fn_enable() {
        //  $("input[type='checkbox']").removeAttr("disabled");
        // $("input[type='checkbox']").attr("disabled", false);
        // $("input[type='checkbox']").prop("disabled","");
        $("input[type='checkbox']").prop("disabled", false);
    }

    //获取选中的 checkbox的值
    function getCheckedValues() {
        var arr = [];
        $("input[type='checkbox']:checked").each(function (index, item) {//
            arr.push($(this).val());
        });
        alert(arr);
    }

    function checkedSecond() {
        // $("input[type='checkbox']:eq(1)").prop("checked", "checked");
        $("input[type='checkbox']:eq(1)").prop("checked", true);
    }

    function uncheckedSecond() {
        //  $("input[type='checkbox']:eq(1)").prop("checked", "");
        $("input[type='checkbox']:eq(1)").prop("checked", false);
    }

    $("#cbCheckbox1").click(function () {
        if ($(this).prop("checked")) {//jquery 1.6以前版本 用  $(this).attr("checked")
            alert("选中");
        } else {
            alert("没有选中");
        }
    });

</script>

参考来源:
https://www.cnblogs.com/junjieok/p/4107066.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值