jQuery通过判断 checkbox 元素的 checked 属性,判断 checkbox是否被选中
jQuery设置复选框的属性<input type="checkbox"/>
$("input").attr("checked","checked")
设置以后checkbox并没有变成选中状态,用chrome调试看了一下,checkbox中确实有checked属性,而且值为checked,但是页面显示仍然为未选中状态
正确的代码:
$("input").prop("checked",true);
原因:
attributes和properties之间的差异在特定情况下是很重要。
jQuery 1.6之前 ,.attr()方法在取某些 attribute 的值时,会返回 property 的值,这就导致了结果的不一致。从 jQuery 1.6 开始, .prop()方法 方法返回 property 的值,而 .attr() 方法返回 attributes 的值。
例如, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected 应使用.prop()方法进行取值或赋值。
在jQuery1.6之前,这些属性使用.attr()方法也可以取得,但是这并不是元素的attr属性。它们没有相应的属性(attributes),只有特性(property)。
例如,一个DOM元素的HTML标记中定义的<input type="checkbox" checked="checked" />,并假设它的JavaScript对象是elem :
测试结果如下:
elem.checked --true(Boolean) 将改变复选框的状态
$(elem).prop("checked") --true(Boolean) 将改变复选框的状态
elem.getAttribute("checked") --"checked"(String) 不会改变的复选框的初始状态;
$(elem).attr("checked") (1.6) --"checked"(String) 不会改变的复选框的初始状态;
$(elem).attr("checked") (1.6.1+) --"checked"(String) 将改变复选框的状态
$(elem).attr("checked") (pre-1.6) --true(Boolean) 将改变复选框的状态
根据W3C的表单规范,在checked属性是一个布尔属性,这意味着只要该 attribute 存在,即使它没有值,或是一个空字符串,该属性对应的 property 就是 true。
以下推荐的是兼容浏览器方式,判断 checkbox 元素的 checked 属性是否为"真" 的方法:
if ( elem.checked )
if ( $(elem).prop("checked") )
if ( $(elem).is(":checked") )
如果你使用jQuery 1.6 ,代码if ( $(elem).attr("checked") ),将获得一个属性(attribute) ,它不改变该复选框被选中和选中。
它只是用来存储默认或选中属性的初始值。为了保持向后兼容,.attr() 方法从 jQuery 1.6.1+ 开始除了返回属性值外,
还会更新 property 属性,因此 boolean attribute(布尔属性)不需要通过 .prop() 来改变其值。
推荐使用上述方法之一,来取得 checked 的值。
jQuery通过判断 checkbox 元素的 checked 属性,判断 checkbox是否被选中的更多相关文章
- jquery attr方法获取input的checked属性问题
1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase <input type="checkbox" id= ...
- jquery attr()方法获取input的checked属性问题
问题:经常使用jQuery插件的attr方法获取checked属性值,获取的值的大小为未定义,此时可以用prop方法获取其真实值,下面介绍这两种方法的区别: 1.通过prop方法获取checked属性 ...
- 为何给CheckBox设置了checked属性还是没有勾选,行内样式都显示了checked
为何给CheckBox设置了checked属性还是没有勾选,行内样式都显示了checked 正常情况下我们设置给CheckBox一个checked属性后一般都会选中 然而我今天在做案例的时候却遇到了类 ...
- jQuery捕获-获取DOM元素内容和属性
一.获取内容 1.text()-设置或返回所选元素的文本内容 2.html()-设置或返回所选元素的内容(包括HTML标记) 3.val()-设置或 返回表单字段的值 $(document).read ...
- 判断子元素(or属性)是否存在
if(typeof($("#aid").attr("rel"))=="undefined") 即可
- jQuery中判断input的checked属性
<input type="checkbox" id="ipt1" checked> <input type="checkbox&qu ...
- 关于jQuery——attr方法和prop方法获取input的checked属性操作
经常使用jQuery插件的attr方法获取checked属性值,获取的值的大小为未定义,此时可以用prop方法获取其真实值,下面介绍这两种方法的区别: 1.通过prop方法获取checked属性,获取 ...
- jquery attr方法和prop方法获取input的checked属性问题
jquery attr方法和prop方法获取input的checked属性问题 问题:经常使用jQuery插件的attr方法获取checked属性值,获取的值的大小为未定义,此时可以用prop方法 ...
- 小程序拿checkbox的checked属性
方法一.checkbox <checkbox class="round red" bindtap="checkboxChange" checked=&q ...
随机推荐
- Erlang使用相关笔记
#从源码编译安装Erlang 1. wget http://www.erlang.org/download/otp_src_r16b.tar.gz -p /usr/local/src 2. tar z ...
- WINFORM 打开PDF
这里使用 Adobe Read 组件 的方式 首先电脑上需要安装AdobeRead VS中添加COM引用 再在工具选项卡中添加Adobe PDF Read 组件即可 从工具箱中直接拖动组件到窗体中即可
- Python开发【第三章】:Python函数介绍
一. 函数介绍 1.函数是什么? 在学习函数之前,一直遵循面向过程编程,即根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复 ...
- Lua Rings库介绍
Rings需求 如果有一段lua脚本代码, 本来来源不可靠, 可能有安全性问题, 或者不像让这份代码污染了正在执行的lua环境, 则需要lua rings工具出厂了. 其在主lua环境中,即在宿主脚本 ...
- Lua JSONRPC学习笔记
JSON RPC JSON RPC 为利用json数据格式来执行远程调用方式, 作用同xmlrpc,不过与xmlrpc相比, jsonrpc更加轻量,json更加节省数据量,更加可读性高. 官网网站: ...
- 图割Graph-Cut的最大流实现
利用最大流标号法求解最大流,详见代码: Version:未加头尾节点版: 缺点:havn't take nodes' pixels into consideration /************** ...
- ucos 学习
1.UCOSII 早期版本只支持 64 个任务,但是从 2.80 版本开始,支持任务数提高到 255 个,不过对我们来说一般 64 个任务都是足够多了,一般很难用到这么多个任务. UCOSII 保留了 ...
- 获取设置唯一的UDID的值
http://blog.sina.com.cn/s/blog_5971cdd00102vqgy.html ---方法 http://www.jianshu.com/p/a7a4a14c8030 -- ...
- yield return的作用
测试1: using UnityEngine; using System.Collections; public class test1 : MonoBehaviour { // Use this f ...
- GAT2.0使用文档(单接口开发)
3 开始写用例 3.1接口用例开发 1) 准备工作 l 第一步从github(https://github.com/GeneralAutomationTesting/GAT2.0 ...