近期项目又用到了这个全选和取消全选的操作.

曾经总是自己写纯JS.如今既然知道怎么写了.那怎样用JQ写得更简洁呢.这样也能学到新的东西.假设乎百度一下果然发现了好东东.感谢OSC的iuhoay.

代码例如以下:

[javascript] view
plain
copy

  1. <script type="text/javascript" src="/web/bzz_index/password/js/jquery-1.7.1.min.js"></script>
  2. <script language="JavaScript">
  3. $(function() {
  4. $("#ckAll").click(function() {
  5. $("input[name='sub']").prop("checked", this.checked);
  6. });
  7. $("input[name='sub']").click(function() {
  8. var $subs = $("input[name='sub']");
  9. $("#ckAll").prop("checked" , $subs.length == $subs.filter(":checked").length ? true :false);
  10. });
  11. });
  12. </script>
[html] view
plain
copy

  1. <input type="checkbox" id="ckAll" />check all<br />
  2. <input type="checkbox" name="sub" />1<br />
  3. <input type="checkbox" name="sub"/>2<br />
  4. <input type="checkbox" name="sub"/>3<br />
  5. <input type="checkbox" name="sub"/>4<br />

必须说的是JQ1.6+以上才支持prop哦.关于prop能够看看以下这个.

今天在用JQuery的时候发现一个问题用.attr("checked")获取checkbox的checked属性时选中的时候能够取到值,值为"checked"但没选中获取值就是undefined.

解决这个文章我參考了这个帖子:

http://bugs.jquery.com/ticket/9812

为什么jquery 1.6+添加了.prop()方法,由于在有些浏览器中比方说仅仅要写disabled,checked就能够了。而有的要写成disabled = "disabled"。checked="checked"。

所以。从1.6開始,jq提供新的方法“prop”来获取这些属性。

曾经我们使用attr获取checked属性时返回"checked"和"",如今使用prop方法获取属性则统一返回true和false。

那么,什么时候使用attr。什么时候使用prop??
1.加入属性名称该属性就会生效应该使用prop.
2.是有true,false两个属性使用prop.
3.其它则使用attr
项目中jquery升级的时候大家要注意这点!

下面是官方建议attr(),prop()的使用:

但有下面三点。须要注意(摘自黑暗运行绪):

  1. $(window).attr(), $(document).attr()建议改为$(windows).prop(), $(document).prop()。由于window及document理论上无从加上HTML Attribute。尽管jQuery 1.6.1在内部会偷偷改用.prop()。毕竟语意不合逻辑。应该避免。
  2. 在HTML语法<input type=”checkbox” checked=”checked” />中。checked Attribute仅仅会在一開始将checked Property设成true,兴许的状态变更及储存都是透过checked Property。

    换句话说。checked Attribute仅仅影响初值,之后应以checked Property为准。

    基于这个理由,$(“:checkbox”).prop(“checked”, true)会比$(“:checkbox”).attr(“checked”,
    true)来得合理。尽管jQuery 1.6.1已让$(“:checkbox”).attr(“checked”, true)也具有变更checked
    Property的能力,但prop()确实比attr()写法更吻合背后的实际运作。

  3. 适用此点的Boolean属性包括了: autofocus, autoplay, async, checked, controls, defer, disabled, hidden, loop, multiple, open, readonly, required, scoped, selected

jQuery Team提供一张DOM元素属性适用attr()/prop()的对比表:

Attribute/Property .attr() .prop()
accesskey  
align  
async
autofocus
checked
class  
contenteditable  
defaultValue  
draggable  
href  
id  
label  
location *
multiple
nodeName  
nodeType  
readOnly
rel  
selected
selectedIndex  
src  
style  
tabindex  
tagName  
title  
type  
width **

最新文章

  1. 理解OVER子句
  2. quick lua 3.3常用方法和学习技巧之transition.lua
  3. angular-xeditable
  4. Async 与 Await 关键字研究
  5. 【LeetCode练习题】Gas Station
  6. 7篇Model View和4篇双缓冲
  7. Java并发编程总结4——ConcurrentHashMap在jdk1.8中的改进(转)
  8. eclipse 找不到application选项
  9. css3制作导航栏
  10. Spring AOP AspectJ
  11. 互联网最新kafka技术面试题含答案
  12. nginx+iis使用
  13. 8. springboot logback 日志整合
  14. 惊闻企业Web应用生成平台 活字格 V4.0 免费了,不单可视化设计器免费,服务器也免费!
  15. BZOJ.4793.[CERC2016]Hangar Hurdles(Kruskal重构树 BFS)
  16. 重读《深入理解Java虚拟机》七、探究Java内存模型
  17. 网络基础协议part 1
  18. 原根的存在性及个数证明(Primitive Root Theorem)
  19. ArcEngine10.x开发的许可问题
  20. 【BZOJ 3659】 3659: Which Dreamed It (Matrix-Tree&amp;BEST theorem )

热门文章

  1. JS动态添加元素的事件动态绑定
  2. 复制webp图片到word || 微信webp图片不能复制 || 如何复制webp到word
  3. python基础知识02-序列类型的方法
  4. 《算法导论》— Chapter 11 散列表
  5. DOS使用笔记
  6. 如何将表的行数赋值给变量(MySQL)
  7. 论MySQL中如何代替Oracle中select into new_table from old_table
  8. MindManager 设置默认Note字体大小
  9. Web框架下安全漏洞的测试反思
  10. 调用hcm接口同步员工数据更新员工信息没有同步到bdm