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. 基于JMH的Benchmark解决方案

    原始Benchmark做法 在设计新框架的时候,往往需要评估待接入的组件的性能,这个时候我们可能会利用UnitTest来进行,写一个方法,然后在循环里面跑,利用System.CurrentTimeMi ...

  2. 结对作业——WordCount进阶版

    Deadline: 2018-10-7 22:00PM,以博客提交至班级博客时间为准 要求参考来自:https://www.cnblogs.com/xinz/archive/2011/11/27/22 ...

  3. SSH Struts2+hiberante+Spring整合

    使用SSH框架编写学生信息: 一.新建Java工程: (1)建立好Java各层级之间的结构:业务处理层dao,数据模型层domain,页面请求处理层(Struts2 MVC层)action,servi ...

  4. L1-058 6翻了

    “666”是一种网络用语,大概是表示某人很厉害.我们很佩服的意思.最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思.如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字 ...

  5. leetcode题解 3. Longest Substring Without Repeating Characters

    题目: Given a string, find the length of the longest substring without repeating characters. Examples: ...

  6. linux c 获取console 结果

    getLine(char *line, const char *cmd) { FILE *pf = popen(cmd, "r"); if (pf == NULL) { ; } f ...

  7. CPU查询

    请问:两路四核超线程=多少CPU??? 答案:16个 一.解释说明 两路=物理主机中,CPU的卡槽,槽位,这个无法增加,一个萝卜一个坑.就更内存卡槽一样,两个内存卡卡槽,a+b=总内存. 路=槽位=插 ...

  8. CoAP、MQTT、RESTful协议区别

    /********************************************************************** * CoAP.MQTT.RESTful协议区别 * 说明 ...

  9. Spark访问Hive表

    知识点1:Spark访问HIVE上面的数据 配置注意点:. 1.拷贝mysql-connector-java-5.1.38-bin.jar等相关的jar包到你${spark_home}/lib中(sp ...

  10. char * p = "abc"与const char *p = "abc"

    char * p = "abc"与const char *p = "abc"的区别是什么呢? 第一个语句会产生问题: warning: deprecated c ...