码迷,mamicode.com
首页 > 其他好文 > 详细

ie9中的classList实现

时间:2017-11-07 14:32:45      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:false   ++   doc   classname   索引   ie9   原型   move   def   

(function(){
  if(document.body.classList == null && Element){
    var wjClassList = {
      el: null,
      names: [],
      getClass: function(){
        var cNames = this.el.className;
        this.names = cNames ? cNames.trim().split(/\s+/) : [];
      },
      genClass: function(){
        this.el.className = this.names.join(" ");
      },
      add:function(cName){
        var i = this.contains(cName);
        if(i === false){
          this.names.push(cName);
          this.genClass();
        }
      },
      remove: function(cName){
        var i = this.contains(cName);
        if(typeof i == "number"){
          this.names[i] = "";
          this.genClass();
        }
      },
      toggle: function(cName){
        var i = this.contains(cName);
        if(i === false){
          this.add(cName);
        }else{
          this.remove(cName);
        }
      },
      contains: function(cName){
        this.getClass();

        var i, len = this.names.length;
        for(i = 0; i < len; i++){
          if(this.names[i] == cName){
            return i; // 如果存在,返回索引
          }
        }
        return false;
      },
    };

    // 在不支持classList的浏览器中, 在Element的原型中写入此方法
    Object.defineProperty(Element.prototype, ‘classList‘, {
      get: function(){
        wjClassList.el = this;
        return wjClassList;
      }
    });
  }
})();

ie9中的classList实现

标签:false   ++   doc   classname   索引   ie9   原型   move   def   

原文地址:http://www.cnblogs.com/wuzhike/p/7798644.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!