zoukankan      html  css  js  c++  java
  • Jquery attr("checked") 返回checked或undefined 获取选中失效

    第一:

    假设我们现在需要这样的场景:页面上有一个checkbox,我们期望通过Jquery来获得它是否选中,或者通过Jquery来让它被选中。
    在JQ1.6之前的版本,我们会这样写我们的代码:

    return isChecked = $('#cb').attr('checked');

    返回的是 true或者false

    //设置选中
    $('#cb').attr('checked',true);

    //取消选中

    $("#cb").removeAttr('checked');

    可是当我们升级JQ1.6到更高的版本时,问题就来了,此时我们会发现:
    $('#cb').attr('checked'); 返回的是checked或者是undefined,不是原来的true和false了。
    并且checked属性在页面初始化的时候已经初始化好了,不会随着状态的改变而改变。所以如果checkbox一开始是选中的,那么返回的是checked,如果一开始没被选中,则返回的是undefined。

    解决的方法是: 使用pop
    复制代码 代码如下:
    <input type='checkbox' id='cb'/>
    <script>
    //获取是否选中
    var isChecked = $('#cb').prop('checked');
    //或
    var isChecked = $('#cb').is(":checked");

    返回true或者false
    //设置选中
    $('#cb').prop('checked',true);

    //设置取消

    $('#cb').prop('checked',false);
    </script>

    分析了其中的原因,可以这样理解:

    它将“属性”与“特性”做了区别,属性指的是“name,id”等等,特性指的是“selectedIndex, tagName, nodeName”等等。
    JQ1.6之后,可以通过attr方法去获得属性,通过prop方法去获得特性
    复制代码 代码如下:
    $("#cb").attr("tagName"); //undefined
    $("#cb").prop("tagName"); //INPUT

  • 相关阅读:
    电脑常用快捷键
    k8s node 系统参数调整
    docker 制作镜像并上传
    php服务部署安装
    安装 Kuboard v2
    keepalive配置
    elasticsearch的segment详解
    grafana模板
    jenkins启动
    kubernetes 中文文档
  • 原文地址:https://www.cnblogs.com/legend-song/p/3651261.html
Copyright © 2011-2022 走看看