zoukankan      html  css  js  c++  java
  • jquery class

    1. 在开发过程中,对元素的class进行操作是经常的事情,如为元素增加一个class或删除一个class或对一个class进行toggle操作。Jquery提供了三个方法addClass、removeClass、toggleClass用来完成对class的操作。   
    2. // 一组对元素attr,class等进行操作的函数   
    3. jQuery.each( {   
    4.         addClass : function(classNames) {// 为元素增加一些classNames   
    5.             jQuery.className.add(this, classNames);   
    6.         },   
    7.         removeClass : function(classNames) {// 除去元素的一些classNames   
    8.             jQuery.className.remove(this, classNames);   
    9.         },   
    10.         toggleClass : function(classNames) {// 开关该class,   
    11.             jQuery.className[jQuery.className.has(this, classNames)   
    12.                     ? "remove"  : "add"](this, classNames);   
    13.         },   
    14.     }, function(name, fn) {   
    15.         jQuery.fn[name] = function() {   
    16.             return this.each(fn, arguments);   
    17.         };   
    18.     });   
    19.    上面的代码简单,它们调用jQuery. className中的add或remove方法:   
    20.     // 一组内部使用的Class操作函数   
    21. className : {   
    22.         // 为元素增加classNameS   
    23.      add : function(elem, classNames) {// 多个className,空格分开   
    24.         jQuery.each((classNames || "").split(/\s+/),   
    25.           function(i, className) {   
    26. if (elem.nodeType == 1     
    27.          && !jQuery.className.has(elem.className,className))   
    28.             elem.className += (elem.className ? " " : "")   + className;   
    29.             });   
    30.         },   
    31. // 为元素除去classNames   
    32. remove : function(elem, classNames) {   
    33.     if (elem.nodeType == 1)// 元素   
    34.       elem.className = classNames != undefined ? jQuery.grep(   
    35.         elem.className.split(/\s+/), function(className) {// 过滤   
    36.                 return !jQuery.className.has(classNames,className);   
    37.             }).join(" ") : "";   
    38.         },   
    39. // 元素有没有className?   
    40. has : function(elem, className) {   
    41.     return jQuery.inArray(className, (elem.className || elem)   
    42.             .toString().split(/\s+/)) > -1;   
    43.         }   
    44. },   
    45. jQuery.className.has方法先把elem.className分成多个class(如果有多个的话),再判断参数className在数组中的位置来判断元素是否包含指定的class。jQuery.className.add先判断元素是不是含有指定的class,没有话就追加。jQuery.className.remove 正好相反。   
    46.   
    47. Jquery还提供了一个hasClass用来判断其集合的元素是否含有指定的class,如果有一个含有的话,就返回true。   
    48. / 检查当前的元素是否含有某个特定的类,如果有,则返回true  
    49.     hasClass : function(selector) {   
    50.         return this.is("." + selector);   
    51.     },  
  • 相关阅读:
    (转)一次棘手的rootvg更换硬盘处理过程
    mysql:服务器错误代码
    (转)运行跟踪格式化程序
    (转)InnoDB存储引擎MVCC实现原理
    (转)漫谈JVM
    (转)mysql、innodb和加锁分析
    (转)DB2和 Oracle的并发控制(锁)比较
    (转)Mysql主从复制搭建及详解
    BigDecimal 、BigInteger
    Date、DateFormat、SimpleDateFormat、Calendar
  • 原文地址:https://www.cnblogs.com/rooney/p/1346459.html
Copyright © 2011-2022 走看看