ie9中的classList实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ie9中的classList实现相关的知识,希望对你有一定的参考价值。

(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实现的主要内容,如果未能解决你的问题,请参考以下文章

IE9 中的 css3 文本阴影

自己实现dom的classList功能

IE9 - 主页中的怪癖模式和特定 iframe 中的“Internet Explorer 9 标准”

删除 Chrome/IE9 中的图像边框

js中classlist怎么使用

未捕获的类型错误:无法在方法中读取 null 的属性“classList”