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

首頁 > 開發 > JS > 正文

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

2024-05-06 16:54:04
字體:
來源:轉載
供稿:網友

本文實例講述了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/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91免费高清视频| 亚洲国产精品久久91精品| 国产69精品久久久久9| 亚洲一区二区在线播放| 国产精品直播网红| 国产福利精品av综合导导航| 成人观看高清在线观看免费| 亚洲999一在线观看www| 国产精品自产拍在线观看中文| 欧美一级黄色网| 日本中文字幕不卡免费| 57pao成人永久免费视频| 欧美精品videossex88| 国产女人精品视频| 亚洲欧美日韩一区二区在线| 国产精品com| 国产综合久久久久久| 国产精品永久在线| 日韩精品视频在线观看网址| 中文字幕日韩精品在线观看| 欧美激情国内偷拍| 国产精品情侣自拍| 亚洲aⅴ男人的天堂在线观看| 日本中文字幕不卡免费| 日本成熟性欧美| 欧美成年人视频网站欧美| 欧美一区二区大胆人体摄影专业网站| 欧美色视频日本高清在线观看| 亚洲国产天堂久久综合网| 亚洲аv电影天堂网| 91精品久久久久久久久中文字幕| 国产亚洲精品高潮| 懂色aⅴ精品一区二区三区蜜月| 在线电影欧美日韩一区二区私密| 中文字幕欧美视频在线| 久久久中精品2020中文| 亚洲久久久久久久久久久| 亚洲精品色婷婷福利天堂| 韩日精品中文字幕| 国产主播精品在线| 欧美日韩国产va另类| 亚洲成人网在线| 欧美激情国产日韩精品一区18| 国产精品免费电影| 亚洲精品视频播放| 国产在线久久久| 在线观看欧美视频| 欧美在线视频观看免费网站| 欧美一级片一区| 欧洲成人免费aa| 午夜精品久久久久久99热软件| 日韩av在线看| 911国产网站尤物在线观看| 91国语精品自产拍在线观看性色| 亚洲日本欧美日韩高观看| 欧美精品videofree1080p| 亚洲在线观看视频| 亚洲天堂免费在线| 欧美在线视频一二三| 欧美在线观看网站| 午夜精品一区二区三区在线播放| 成人做爰www免费看视频网站| 98视频在线噜噜噜国产| 一本色道久久88综合日韩精品| 国产高清视频一区三区| 丝袜美腿精品国产二区| 日韩精品在线免费| 亚洲男人的天堂网站| 欧美乱人伦中文字幕在线| 国产精品久久久久免费a∨| 日韩美女主播视频| 国内精品一区二区三区四区| 欧美成年人视频网站| 国产成人91久久精品| 亚洲影院在线看| 亚洲一区二区三区四区在线播放| 欧洲精品在线视频| 91久久久久久| 原创国产精品91| 欧美国产亚洲视频| 精品国产一区二区三区久久狼5月| 91精品国产高清久久久久久久久| 日韩久久精品成人| 中日韩午夜理伦电影免费| 亚洲精品网站在线播放gif| 国产91色在线免费| 欧美专区日韩视频| 日韩欧美国产骚| 综合久久五月天| 亚洲精品欧美一区二区三区| 超碰日本道色综合久久综合| 97国产精品人人爽人人做| 亚洲欧美中文在线视频| 97国产一区二区精品久久呦| 久久久视频在线| 亚洲欧美视频在线| 国产精品高潮粉嫩av| 国内精品视频久久| 国产精品亚发布| 亚洲一区二区久久久久久| 日韩成人在线视频网站| 日韩欧美精品免费在线| 成人深夜直播免费观看| 狠狠躁夜夜躁人人爽超碰91| 欧美另类精品xxxx孕妇| 91av网站在线播放| 日韩视频在线一区| 26uuu另类亚洲欧美日本一| 久久久久久久久中文字幕| 国自产精品手机在线观看视频| 欧美一级视频一区二区| 欧美性猛交xxxx乱大交极品| 欧美激情a∨在线视频播放| 亚洲大尺度美女在线| 成人精品久久久| 日韩天堂在线视频| 久久久精品2019中文字幕神马| 亚洲r级在线观看| 成人黄色av网| www.亚洲一二| 国产精品丝袜白浆摸在线| 久久91亚洲精品中文字幕| 欧美又大又粗又长| 777国产偷窥盗摄精品视频| 国产亚洲精品成人av久久ww| 欧美日韩国产精品一区二区三区四区| 亚洲国产又黄又爽女人高潮的| 久久精品99久久久久久久久| 欧美在线一区二区三区四| 精品国产精品自拍| 欧美日韩福利在线观看| 国产精品欧美日韩久久| 欧美人与物videos| 国产精品久久久久久久久久免费| 欧美激情综合色综合啪啪五月| 91精品美女在线| 国产精品视频区1| 午夜精品福利视频| 色悠久久久久综合先锋影音下载| 日韩一区二区三区在线播放| 亚洲第一页中文字幕| 欧美日韩高清在线观看| 色综合天天狠天天透天天伊人| 久久成人一区二区| 日韩男女性生活视频| 久久高清视频免费| 久久久久久久久国产| 国产人妖伪娘一区91| 播播国产欧美激情| 国产高清视频一区三区| 日韩中文字幕国产| 久久精品免费播放| 欧美大胆在线视频| 久久69精品久久久久久久电影好| 国产日韩欧美自拍| 欧美激情成人在线视频| 亚洲国产另类久久精品| 日韩欧美在线播放| 国产精品久久久久久久一区探花| 91精品国产沙发| 97香蕉久久夜色精品国产| 欧美日韩在线第一页| 亚洲成人激情小说| 亚洲第一网站免费视频|