• jquery全选,取消全选


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

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

    代码例如以下:

    [javascript] view plaincopy
    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.     
    8.   $("input[name='sub']").click(function() {  
    9.     var $subs = $("input[name='sub']");  
    10.     $("#ckAll").prop("checked" , $subs.length == $subs.filter(":checked").length ? true :false);  
    11.   });  
    12. });  
    13. </script>  

    [html] view plaincopy
    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 **

  • 相关阅读:
    html头部属性全接触
    js中的window.onload和jquery中的load区别
    关机时,自动清除运行框的记录的设置方法
    MVC问题小总结,不断更新中...
    iis6 元数据库与iis6 配置的兼容 出错问题
    MVC对异步 Controller 的支持
    SQL Server2008安装报错,解决方案
    JavaScript有5个原始类型
    ASP.NET MVC中的拦截器
    F5负载均衡
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6866230.html
Copyright © 2020-2023  润新知