zoukankan      html  css  js  c++  java
  • 【学】jQuery的源码思路5——增加class的操作

    • hasClass, addClass, removeClass, toggleClass
    //addClass,加入class会对元素,利用正则,将class中多余的空格去掉
    zQuery.prototype.addClass=function(sClass){
        var re=new RegExp('\b'+sClass+'\b');
        for(var i=0;i<this.elements.length;i++){
            if(!re.test(this.elements[i].className)){
                this.elements[i].className=this.elements[i].className+' '+sClass;
            }
            this.elements[i].className=this.elements[i].className.replace(/^s+|s+$/g,'').replace(/s+/g,' ');
        }
    };
    
    //removeClass,同样会整理class中的多余空格
    zQuery.prototype.removeClass=function(sClass){
        var re=new RegExp('\b'+sClass+'\b');
        for(var i=0;i<this.elements.length;i++) {
            if(re.test(this.elements[i].className)){
                this.elements[i].className=this.elements[i].className.replace(re,'');
                if(!this.elements[i].className){
                    this.elements[i].removeAttribute('class');
                }
            }
    
            if(this.elements[i].className){
                this.elements[i].className=this.elements[i].className.replace(/^s+|s+$/g,'').replace(/s+/g,' ');
            }
        }
    };
    
    //hasClass
    zQuery.prototype.hasClass=function(sClass){
        var re=new RegExp('\b'+sClass+'\b');
        for(var i=0;i<this.elements.length;i++){
            return re.test(this.elements[i].className);
        }
    };
    
    //toggleClass
    zQuery.prototype.toggleClass=function(sClass){
        for(var i=0;i<this.elements.length;i++){
            if($(this.elements[i]).hasClass(sClass)){
                $(this.elements[i]).removeClass(sClass);
            }else{
                $(this.elements[i]).addClass(sClass);
            }
        }
    };
    
  • 相关阅读:
    50个提高PHP程序运行效率的方法
    虚拟主机FTP上传文件为什么要用二进制上传
    Status Bar 总结
    TableView 总结
    阿里Java开发手册(泰山版)个人记录
    下载excel模板
    微信公众号-发送模板消息
    ffmpeg获取视频时长
    微信公众号授权
    根据word模板生成word、转换成pdf、打成war包
  • 原文地址:https://www.cnblogs.com/bluefantasy728/p/5791571.html
Copyright © 2011-2022 走看看