亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS中getElementsByClassName與classList兼容性問題解決方案分析

2019-11-19 11:03:59
字體:
來源:轉載
供稿:網友

本文實例講述了JS中getElementsByClassName與classList兼容性問題解決方案。分享給大家供大家參考,具體如下:

document(element).getElementsByClassName(classNames:classString);

HTML5新添加了這個方法,這個方法可以通過document和html元素調用,接受一個參數,這個參數包含一個或多個類名的字符串,返回帶有制定類型的NodeList(存在性能問題),傳入的多個類型順序不重要。這個方法僅僅在標準瀏覽器下有效,在非標準瀏覽器下無效。

<body>    <p class="p1 p">p1 p</p>    <p class="p"> p</p>    <script type="text/javascript">        var aP = document.getElementsByClassName(' p p1' );        alert(aP.length);        /*標準 : 1*/        /*非標準:Error:對象不支持“getElementsByClassName”屬性或方法*/    </script></body>

解決兼容性的方式:

var getElementsByClassName = (function (classList,/*optional*/parent){    if(typeof classList !== "string") throw TypeError("the type of classList is error");    var parent = parent || window.document;/*添加默認值*/    if(parent.getElementsByClassName){/*如果是標準瀏覽器支持該方法*/      return parent.getElementsByClassName(classList);    }else{/*如果不支持該方法即非標準瀏覽器*/      var child = parent.getElementsByTagName("*");      var nodeList = [];      /*獲得classList的每個類名 解決前后空格 以及兩個類名之間空格不止一個問題*/      var classAttr = classList.replace(/^/s+|/s+$/g,"").split(//s+/);      for(var j = 0,len_j = child.length; j<len_j; j++){        var element = child[j];        for(var i = 0,len_i = classAttr.length; i< len_i; i++){          var _className = classAttr[i];          if(element.className.search(new RegExp("(//s+)?"+_className+"(//s+)?")) === -1){            break;          }        }        if(i===len_i) nodeList.push(element);      }      return nodeList;    }});

classList屬性

classList屬性是HTML5新增的一個屬性,在這個屬性下有幾個方法:

Add(value)將給定的字符串值增加到列表中,如果存在,就不會添加。
Contains(value)表示列表中是否存在給定的值,如果存在返回true,否則返回false。
Remove(value)從列表中刪除給定的字符串。
Toggle(value)如果列表中已經存在給定的值,刪除它,如果沒有給定的值,增加它。

支持classList的瀏覽器有Firefox3.6+和chrome和IE10+。

解決兼容性:

var classList = null;(function(){    classList = function (obj){      this.obj = obj;    };    classList.prototype.add = function(value){      if(typeof value !== "string") throw TypeError("the type of value is error");      if(this.obj.classList){        this.obj.classList.add(value);      }else{        var arr = value.replace(/^/s+|/s+$/g,"").split(//s+/);        this.obj.classList +=" "+arr.join(" ");      }    };    classList.prototype.contains = function(value){      if(typeof value !== "string") throw TypeError("the type of value is error");      if(this.obj.classList){        return this.obj.classList.contains(value);      }else{        var arr = value.replace(/^/s+|/s+$/g,"").split(//s+/);        var _className = this.obj.className;        for(var i = 0,len= arr.length; i<len; i++){          if(_className.search(new RegExp("(//s+)?"+arr[i]+"(//s+)?"))===-1){            return false;          }        }        return true;      }    };    classList.prototype.remove = function(value){      if(typeof value !== "string") throw TypeError("the type of value is error");      if(this.obj.classList){        return this.obj.classList.remove(value);      }else{        var arr = value.replace(/^/s+|/s+$/g,"").split(//s+/);        var _className = this.obj.className;        for(var i = 0, len = arr.length;i<len; i++){          if(_className.search(new RegExp("(//s+)?"+arr[i]+"(//s+)?"))!==-1){            _className = _className.replace(new RegExp("(//s+)?"+arr[i]+"(//s+)?"),"");          }        }        this.obj.className = _className;      }    };    classList.prototype.toggle = function(value){      if(typeof value !== "string") throw TypeError("the type of value is error");      if(this.contains(value)){        this.remove(value);      }else{        this.add(value);      }    };})();

更多關于JavaScript相關內容可查看本站專題:《JavaScript操作DOM技巧總結》、《JavaScript頁面元素操作技巧總結》、《JavaScript事件相關操作與技巧大全》、《JavaScript查找算法技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript錯誤與調試技巧總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产午夜精品一区理论片飘花| 激情成人在线视频| 欧美性猛交xxxx免费看| 一本大道香蕉久在线播放29| 日韩一区二区三区国产| 亚洲人精选亚洲人成在线| 日韩免费电影在线观看| 中文字幕亚洲一区二区三区| 欧美日韩另类视频| 国产精品久久久久久久午夜| 91av在线视频观看| 在线观看欧美日韩国产| 亚洲中国色老太| 欧美成人免费网| 97在线视频国产| 欧美成人网在线| 欧美国产日产韩国视频| 日韩精品www| 在线看欧美日韩| 国产亚洲视频中文字幕视频| 精品久久久在线观看| 亚洲激情电影中文字幕| 欧美一区二区三区四区在线| 欧美大片在线看免费观看| 精品久久久国产精品999| 亚洲美女av网站| 亚洲精品一区中文字幕乱码| 97精品一区二区视频在线观看| 一区二区欧美亚洲| 午夜精品国产精品大乳美女| 亚洲电影免费观看高清完整版| 久久视频免费在线播放| 国产精品一区二区三区成人| 欧美日韩国产一区二区三区| 在线观看视频99| 日韩精品免费观看| 欧美色道久久88综合亚洲精品| 超碰97人人做人人爱少妇| 国产精品一区二区女厕厕| 亚洲国产精彩中文乱码av在线播放| 国产主播欧美精品| 久久精品久久久久久国产 免费| 日本欧美中文字幕| 亚洲成人在线视频播放| 91av免费观看91av精品在线| 色yeye香蕉凹凸一区二区av| 欧美中在线观看| 亚洲无线码在线一区观看| 国产精品com| 午夜精品一区二区三区在线播放| 欧美电影电视剧在线观看| 亚洲精品成人久久久| 亚洲一区二区三区在线免费观看| 久久国产精品久久国产精品| 成人精品福利视频| 亚洲精品久久久久久下一站| 日韩av资源在线播放| 91精品久久久久久综合乱菊| 亚洲欧美中文字幕在线一区| 久久精品视频一| 欧美极品少妇全裸体| 亚洲人午夜精品免费| 国产精品久久久一区| 国产亚洲精品久久久久动| 亚洲社区在线观看| 亚洲国产成人久久综合一区| 国产成人一区二区| 亚洲高清av在线| 亚洲欧美三级伦理| 性欧美暴力猛交69hd| 国产欧美一区二区三区在线| 性欧美暴力猛交69hd| 91在线精品视频| 91在线播放国产| 欧美日韩国产精品专区| 亚洲aⅴ男人的天堂在线观看| 超碰91人人草人人干| 亚洲全黄一级网站| 亚洲欧美一区二区精品久久久| 日韩av在线免费| 色综合久久中文字幕综合网小说| 在线播放国产一区二区三区| 欧美一区二粉嫩精品国产一线天| 日韩美女写真福利在线观看| 亚洲男女性事视频| 国产999精品久久久| 精品五月天久久| 国产亚洲一级高清| 国产在线观看精品| 亚洲国产精品久久| 欧美亚洲在线观看| 欧美亚洲成人免费| 欧美激情免费观看| 欧美日韩国产999| 中文字幕一区日韩电影| 国产精国产精品| 久久久噜噜噜久久| 成人乱人伦精品视频在线观看| 日韩视频免费大全中文字幕| 亚洲成人激情视频| 亚洲欧美日韩中文在线制服| 欧美视频第一页| 久久伊人91精品综合网站| 日韩精品久久久久久福利| 亚洲国产成人在线播放| 欧美一级免费看| 成人黄色av播放免费| 欧美精品电影免费在线观看| 欧美电影免费在线观看| 国产一区二区久久精品| 亚洲精品成人久久| 亚洲男人的天堂在线播放| 欧美精品电影免费在线观看| 成人国内精品久久久久一区| 97色在线观看免费视频| 久久久久久久电影一区| 国产成人久久精品| 亚洲人成人99网站| 日韩欧美亚洲成人| 91在线免费看网站| 国产视频丨精品|在线观看| 久久精品电影网| 精品国产精品三级精品av网址| 国产在线视频91| 国产精品大片wwwwww| 成人国产精品日本在线| 亚洲综合精品一区二区| 日韩在线视频国产| 成人午夜激情免费视频| 97国产精品免费视频| 一本色道久久88亚洲综合88| 一区二区三区在线播放欧美| 国产精品老女人视频| 欧美亚洲国产日韩2020| 色综合伊人色综合网站| 91国偷自产一区二区三区的观看方式| 亚洲已满18点击进入在线看片| 国产精品午夜国产小视频| 精品自在线视频| 亚洲无av在线中文字幕| 亚洲www永久成人夜色| 91精品中文在线| 国产成人精品在线视频| 国产成人精品在线观看| 日韩精品免费在线观看| 亚洲女在线观看| 日韩黄色在线免费观看| 91手机视频在线观看| 精品视频中文字幕| 亚洲欧美三级伦理| 欧美精品国产精品日韩精品| 欧美激情一二三| 国内揄拍国内精品少妇国语| 久久亚洲综合国产精品99麻豆精品福利| 成人激情视频在线观看| 久久天天躁日日躁| 国产欧美在线观看| 午夜精品视频在线| 奇门遁甲1982国语版免费观看高清| 亚洲自拍小视频免费观看| 久久高清视频免费| 欧美一区二区大胆人体摄影专业网站| 日韩电影在线观看永久视频免费网站| 久久精品国产久精国产一老狼|