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

曾经总是自己写纯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 **

jquery全选,取消全选的更多相关文章

  1. Jquery CheckBox复选框 全选/取消全选 最佳实现方式 参考案例

    <input id="chkAll" type="checkbox" />全选/取消全选</div> <asp:Repeater ...

  2. jQuery 复选框全选/取消全选/反选

    jQuery实现的复选框全选/取消全选/反选及获得选择的值. 完整代码: <!DOCTYPE html> <html> <head> <script type ...

  3. jQuery--checkbox全选/取消全选

    用JavaScript使页面上的一组checkbox全选/取消全选,逻辑很简单,实现代码也没有太难的语法.但使用jQuery实现则更简单,代码也很简洁,精辟! jQuery版本:1.3.2 <h ...

  4. html checkbox 实现全选/取消全选

    html checkbox  实现全选/取消全选 <html> <body> <table border="1"> <tr> < ...

  5. 【转载】checkbox实现全选/取消全选

    比较简单.好理解的写法,做个备注.查看请前往原地址:http://blog.csdn.net/graceup/article/details/46650781 <html> <bod ...

  6. AngularJS--购物车全选/取消全选功能实现

    刚学习angularJS,于是练习写了一个类似于购物车的全选/取消全选的功能,主要实现的功能有: 1.勾选全选checkbox,列表数据全部被勾选,取消同理,用ng-model实现双向绑定: 2.选中 ...

  7. checkbox全选/取消全选

    //checkbox全选/取消全选 $(function() { $("#checkAll").click(function() { if(this.checked){ $(&qu ...

  8. Vue 全选/取消全选,反选/取消反选

    这是一个组件: <template> <div> <div> <input type="checkbox" v-model="i ...

  9. vue实现功能 单选 取消单选 全选 取消全选

    vue实现功能 单选 取消单选 全选 取消全选 代码部分 <template> <div class=""> <h1>全选框</h1> ...

  10. jquery checkbox勾选取消勾选的诡异问题

    jquery checkbox勾选/取消勾选的诡异问题jquery checkbox勾选/取消勾选的诡异问题 <form>        你爱好的运动是?<input type=&q ...

随机推荐

  1. VS打开文件,解决方案资源管理器自动定位到文件位置

    打开 工具-->选项-->项目和解决方案-->常规,勾选“在解决方案资源管理器中跟踪活动项”

  2. python 一些函数和类用法记录

    这一篇主要用来记录在学习过程中遇到的一些觉得有意思的函数或者类的用法,有一些用法感觉很炫酷. 1.collections.defaultdict from collections import def ...

  3. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

  4. 18. PROFILING

    18. PROFILING PROFILING表提供语句分析信息. 其内容对应于SHOW PROFILE和SHOW PROFILES语句生成的信息(参见"SHOW PROFILE语法&quo ...

  5. HTML5增加与改良的input元素

    h5中form表单中input新增的属性值 在HTML5中增加了许多新的标签和功能属性,今天我们来看一个Form表单在HTML5中新的使用方法.那么在HTML5中新加入的这个功能与之前咱们使用的功能区 ...

  6. 微信小程序request请求动态获取数据

    微信小程序开发文档链接 1 后台代码: clickButton:function(){ var that = this; wx.request({ url: 'http://localhost:909 ...

  7. 数据结构实验2:C++实现单链表类

    太简单了,直接贴题目然后上代码. 题目: 实验2 2.1 实验目的 熟练掌握线性表的链式存储结构. 熟练掌握单链表的有关算法设计. 根据具体问题的需要,设计出合理的表示数据的链式存储结构,并设计相关算 ...

  8. 【Codeforces 1108E1】Array and Segments (Easy version)

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 枚举最大值和最小值在什么地方. 显然,只要包含最小值的区间,都让他减少. 因为就算那个区间包含最大值,也无所谓,因为不会让答案变小. 但是那些 ...

  9. UVALive 7148 LRIP

    LRIPTime Limit: 10000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu 解题:树分治 参考了Oyking大神的解法 ...

  10. python010 Python3 元组

    Python3 元组Python 的元组与列表类似,不同之处在于元组的元素不能修改.元组使用小括号,列表使用方括号.元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可.如下实例: tup1 = ...