jq1.6版本前后,attr()和prop()的区别,来自慕课网的回答
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。
更改后的代码如下:
<script type="text/javascript">
$(function () {
$("#allorno").click(function () {
$("input[name='items']").prop("checked", $(this).prop("checked"));
});
});
</script>
——————————————————————
最后感谢慕课网的叫jacsong的这位网友
最新文章
- Microsoft SQL Server 2008 R2 安装卸载
- docker-gerrit
- 自己一晚上总结的php基础知识!好累。好充实。
- Tomcat 搭配 Nginx 还是 Apache 呢?
- _blank开新窗体不符合标准?
- 门面模式 到 socket
- JDK下sun.net.www.protocol.http.HttpURLConnection类-----Http客户端实现类的实现分析
- DFU工作过程中USB机制
- poj 3045 Cow Acrobats(二分搜索?)
- java和C#之间SOCKET通信的问题
- sublime text package control 被墙的解决办法
- 专注于C#.Net WPF软件开发-软件反编译-软件破解-逆向-靖芯科技-包括安卓APK反编译
- oracle 启动三步骤
- Windows system 在python文件操作时的路径表示方法
- WPF Grid布局
- BZOJ4514[Sdoi2016]数字配对——最大费用最大流
- Confluence 6 有关 AD 的一些特殊说明
- ios scrollView代理的用法
- MySQL中死锁
- SPOJ 3267. D-query (主席树,查询区间有多少个不相同的数)
热门文章
- java base64编码解码
- 支付宝小程序开发——rich-text富文本组件支持html代码
- VUE-012-图表 v-charts 学习(一)饼图展示状态
- 在条件判断中使用 all() / any()
- java日期格式转换大全
- [转]解决 gem install 安装失败
- mysql8.0 caching_sha2_password的坑
- springboot底层原理简述
- [转帖]Java升级那么快,多个版本如何灵活切换和管理?
- [Linux] 在 Ubuntu 19.10 上开启 SSH 服务并允许远程登录