Jquery的attr和prop的区别

描述:想做一个复选框checkbox全选的功能,当勾选全选后,将子项的复选框状态设置成一致的,

但遇到了一个问题,就是attr函数并不能改变子项的checkbox的状态,而换成prop函数就可以了。

原因在于attr和prop的区别:我觉得有句话概括的非常好

---------对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。

---------对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

----------------来自〖芈老头〗的技术空间-All For Better Codes

就拿我的代码做例子:

jsp:

<th>
<label class="am-checkbox"> <input type="checkbox" id="selectAll" data-am-ucheck> 全选 </label>
</th>
<c:forEach items="${pb.beanList }" var="product">
<tr class="even gradeC"> <td>
<label class="am-checkbox"> <input type="checkbox" value="${product.productId }" name="checkboxBtn" data-am-ucheck> </label>
</td> </tr>
</c:forEach>

js:

$(function() {

	/*
* 给全选添加click事件
*/
$("#selectAll").click(function() {
/*
* 1. 获取全选的状态
*/
var bool = $("#selectAll").prop("checked");
/*
* 2. 让所有条目的复选框与全选的状态同步
*/
setItemCheckBox(bool); }); }); /*
* 统一设置所有条目的复选按钮
*/
function setItemCheckBox(bool) {
$(":checkbox[name=checkboxBtn]").prop("checked", bool);
}

checkbox选中属性对应“checked”,属于固有属性,因此需要使用prop方法去操作才能获得正确的结果,如果用attr则会出现undefined这样的错误。

所以说,要分清属性的情况再选择用prop还是attr。用错的话就会出现undefined这样的错误。

tips:Jquery的attr和prop的区别的更多相关文章

  1. jquery中attr和prop的区别、 什么时候用 attr 什么时候用 prop (转自 芈老头 )

    jquery中attr和prop的区别. 什么时候用 attr 什么时候用 prop   在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这 ...

  2. jQuery中.attr()和.prop()的区别

    之前学习jQuery的时候,学习到了两种取得标签的属性值的方法:一种是elemJobj.attr(),另一种是elemJobj.prop().而在学习JS的时候,只有一种方法elemObj.getAt ...

  3. jquery中attr和prop的区别(转)

    在网络上看到这样一篇关于jquery中attr和prop的区别文章,觉得不错,所以转载了. 在jQuery 1.6中,.attr()方法查询那些没有设置的属性,则会返回一个undefined.如果你要 ...

  4. jquery中attr和prop的区别分析

    这篇文章主要介绍了jquery中attr和prop的区别分析的相关资料,需要的朋友可以参考下 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别 ...

  5. Jquery学习笔记(6)--jquery中attr和prop的区别【精辟】

    jquery中attr和prop的区别 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很 ...

  6. Jquery中attr 和 prop的区别和联系

    昨天在选择借款方类型的时候总是会出现选择要点两次的现象,比如点击公司,第一次点击选择公司,没有选中,必须在次点击才可以选中,总感觉是有点延迟加载的意思,后来审查元素, 发现是redio元素,这样的话就 ...

  7. jQuery的attr()与prop()的区别

    jQuery的attr()与prop()都是用于获取与设置属性的,但它们又各有不同. attr()一般是用于设置默认值,prop()一般是用于设置属性值,即对于像“diabled”,"che ...

  8. jQuery函数attr()和prop()的区别

    在jQuery中,attr()函数和prop()函数都用于设置或获取指定的属性,它们的参数和用法也几乎完全相同. 但不得不说的是,这两个函数的用处却并不相同.下面我们来详细介绍这两个函数之间的区别. ...

  9. jQuery函数attr()和prop()的区别,val()

    [自己总结,详情见下面转录的文章]: attr()用于操作html属性,prop()属性用于操作DOM属性 ①: 很多情况下可以互用 ②:attr()独自适用的情况,自定义的html属性,html属性 ...

随机推荐

  1. 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404

     maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...

  2. PHP爬虫

    使用PHP的curl扩展抓取页面数据 PHP的curl扩展是PHP支持的允许你与各种服务器使用各种类型的协议进行连接和通信的库. 本程序是抓取知乎的用户数据,要能访问用户个人页面,需要用户登录后的才能 ...

  3. Android : 关于HTTPS、TLS/SSL认证以及客户端证书导入方法

    一.HTTPS 简介 HTTPS 全称 HTTP over TLS/SSL(TLS就是SSL的新版本3.1).TLS/SSL是在传输层上层的协议,应用层的下层,作为一个安全层而存在,翻译过来一般叫做传 ...

  4. 1. Django概述

    1.1 设计模型 Django,但它附带了一个你可以用python代码描述数据库布局的对象关系映射器. 数据模型语法提供了许多丰富的方法来展现你的模型——到目前为止,它解决了多年来数据库模式问题. 简 ...

  5. Hadoop学习笔记04_Hbase

    大数据开发的学习,组件还是很多的,都需要掌握并多加练习. 最好的参考文档当然是官方的了. 因为Hadoop生态圈组件很多,所以,在建设之初一定要检查好各版本的兼容性.避免后期麻烦. 我的练习使用Had ...

  6. Linux:ldd命令详解

    ldd 用于打印程序或者库文件所依赖的共享库列表. 语法 ldd(选项)(参数) 选项 --version:打印指令版本号: -v:详细信息模式,打印所有相关信息: -u:打印未使用的直接依赖: -d ...

  7. MySQL配置文件my.ini或my.cnf的位置

    1.Windows下MySQL的配置文件是my.ini,一般会在安装目录的根目录. 2.Linux下MySQL的配置文件是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.c ...

  8. CentOS6.5安装mysql5.7

    CentOS6.5安装mysql5.7 查看mysql的安装路径: [root@bogon ~]# whereis mysql mysql: /usr/bin/mysql /usr/lib/mysql ...

  9. Git图形化界面客户端

    Git图形化界面客户端大汇总 文,还在不断更新,网上搜到的同名文章都是未经同意就从这里复制过去的) 一.TortoiseGit - The coolest Interface to Git Versi ...

  10. poj 1151 (未完成) 扫描线 线段树 离散化

    #include<iostream> #include<vector> #include<cmath> #include<algorithm> usin ...