jquery全选,取消全选

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

以前总是自己写纯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 ** ?
时间: 2024-10-16 21:40:08

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

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

jQuery实现的复选框全选/取消全选/反选及获得选择的值. 完整代码: <!DOCTYPE html> <html> <head> <script type="text/javascript" src="../js/jquery-1.9.1.js"></script> <script type="text/javascript"> $(document).ready(fun

jquery全选/取消全选(反选)/单选操作

使用jQuery实现一组checkbox全选/取消全选,代码很简洁. jquery版本:2.0 先看看HTML代码,很简单的操作框 </head> <body>    <div>        <input id="checkAll" type="checkbox" />全选        <input name="subBox" type="checkbox" />

jQuery 表单应用:全选/取消全选,表单验证,网页选项卡切换

应用一:单行文本框应用 需要用到的 API focus([[data],fn])   --> 当元素获得焦点时,触发 focus 事件 blur([[data],fn])     --> 当元素失去焦点时,触发 blur 事件 <!DOCTYPE html> <html> <head lang="en">     <meta charset="UTF-8">     <title></ti

html checkbox 实现全选/取消全选

html checkbox  实现全选/取消全选 <html> <body> <table border="1"> <tr> <th><input type="checkbox" onclick="swapCheck()" /></th> <th>Month</th> <th>Savings</th> </tr

全选/取消全选那点事

今天我花了半天时间处理checkbox全选/取消全选那点事 技术领域 可信计算 其他   全选 申请日 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016  年  至 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 至今 年 专利类型 发明专利 实用新型   全选 授权

checkbox全选/取消全选

//checkbox全选/取消全选 $(function() { $("#checkAll").click(function() { if(this.checked){ $("input[name='cbxCommodity']").prop("checked","checked"); }else{ $("input[name='cbxCommodity']").removeAttr("check

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

刚学习angularJS,于是练习写了一个类似于购物车的全选/取消全选的功能,主要实现的功能有: 1.勾选全选checkbox,列表数据全部被勾选,取消同理,用ng-model实现双向绑定: 2.选中列表中的所有checkbox,全选也会被勾选:(这里我想到的方法是给每一个对象增加checked字段,然后勾选触发echoChange()函数,用了一个cc变量计算当前checked为true的个数,然后再判断被勾选个数与数组长度是否相等,相等则证明全部被勾选,于是全选按钮也赋值为true;不知道还

jquery checkbox勾选/取消勾选的诡异问题

<form> 你爱好的运动是?<input type="checkbox" id="CheckedAll" />全选/全不选<br /> <input type="checkbox" name="items" value="足球" />足球 <input type="checkbox" name="items" v

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

jquery checkbox勾选/取消勾选的诡异问题jquery checkbox勾选/取消勾选的诡异问题 <form>        你爱好的运动是?<input type="checkbox" id="CheckedAll" />全选/全不选<br />        <input type="checkbox" name="items" value="足球"