zoukankan      html  css  js  c++  java
  • Jquery获取checkbox属性checked为undefined

    说明:本文来自新浪博客,因为无法收藏,故直接copy过来备注,以后好查询

    原网址:http://blog.sina.com.cn/s/blog_6810dfc20101jddq.html

    使用jQuery v1.10.2获取checkbox的状态时,用.attr("checked")时输出总是为undefined.郁闷了,这难道是个bug?!

    查看jQuery API的文档,发现:

    As of jQuery 1.6, the .attr() method returns undefined for attributes that have not been set. In addition, .attr() should not be used on plain objects, arrays, the window, or the document. To retrieve and change DOM properties, use the .prop() method.

    The difference between attributes and properties can be important in specific situations. Before jQuery 1.6, the .attr() method sometimes took property values into account when retrieving some attributes, which could cause inconsistent behavior. As of jQuery 1.6, the .prop() method provides a way to explicitly retrieve property values, while .attr() retrieves attributes.

    也就说:v1.6以后attr(‘checked’)就返回checked和undefined,v1.6以前返回true和false,v1.6以后可以使用is(‘:checked’)或者.prop(‘checked’)来返回true和false

    总结:

    (1)获取checked的方法

        .attr('checked'):  
        .prop('checked'): //1.6+:true/false
        .is(':checked'):   

    (2)checked赋值

         所有的jquery版本都可以这样赋值:
         .attr("checked","checked");
         .attr("checked",true);

          jquery1.6以上版本的:
         .prop("checked",true);

        .prop("checked","checked");
        .prop({checked:true});
         .prop("checked",function(){
                  return true;
          });

    (3)note:jquery1.6以上才存在prop();

    checkbox操作:

    <input id="cbxAll" type="checkbox" title="全选" name="cbxAll" onclick="CheckAll()" />
    <input id="cbx1" type="checkbox" title="单选" name="cbxType" onclick="CheckOne()"/>
    function CheckAll() {
        var checkall = $("#cbxAll").prop("checked");
        if (checkall) {
        //全选 $(
    "input:checkbox[name='cbxType']").prop("checked", true); } else {
        //取消全选 $(
    "input:checkbox[name='cbxType']").prop("checked", false); } }
    function CheckOne() {
      $("#cbxAll").prop("checked",false);
    }
    var checkedboxes = $("input:checkbox[name='cbxType']:checked");
  • 相关阅读:
    通过android XML 创建图形,降低对美工的依赖
    ViewPager学习之仿微信主界面
    Linux学习日志--文件搜索命令
    蓝桥杯 历届试题 小朋友排队 【树状数组】+【逆序数】
    操作系统——IO管理
    Mac和PC在工作中管理的对比(5)
    虚拟地址空间分配
    UVA 624 CD(DP + 01背包)
    【CSS】瀑布流布局的两种方式:传统多列浮动和绝对定位布局
    外煤关注:百度收购大部分糯米股份
  • 原文地址:https://www.cnblogs.com/zhyue93/p/checkbox.html
Copyright © 2011-2022 走看看