最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js document.getElementsByClassName的使用介紹與自定義函數(shù)

 更新時間:2016年11月25日 15:24:30   投稿:mdxy-dxy  
今天在增加一個功能的時候需要用到getElementsByClassName(),getElementsByClassName但是HTML5 新增的DOM API。IE8以下不支持,那么就需要下面的方法解決了

getElementsByClassName()是HTML5 新增的DOM API。IE8以下不支持搜索。

getElementByClassName()函數(shù)的使用方法:

使用JavaScript訪問DOM的一個重大問題是,此過程需要一種通過元素類名稱來選擇類的類函數(shù),對DOMContentReady,這種類函數(shù)的缺失導(dǎo)致開發(fā)人員需要自己編寫自定義腳本業(yè)執(zhí)行上述任務(wù),許多這個類腳本都是圍繞著getElementByClassName()建立的,這種解決方法在HTML5中被標(biāo)準(zhǔn)化,另外,這種方法還本地存在于現(xiàn)代瀏覽器中,GetElementByClassName()只使用一個字符串值作為輸入.并返回一個Nodelist,這個NodeList包含所有類名稱匹配這個字符串值的元素:

var el = document.getElementsByClassName('foo');

通過在字符串中使用空格分隔類,也可以匹配多個類,下面的代碼挑選出了所有既擁有foo類名稱又擁有bar類名稱的元素:

var el = document.getElementsByClassName('foo bar');

W3C沒有g(shù)etElementByClassName這個函數(shù),我們可以自己定義一個函數(shù)來模擬它。

一般如下幾種方法:

1、要不就是使用jquery來實現(xiàn)

2、通過自定義函數(shù)解決

class單個時 如class="test"

function getElementsByClassName (className) {
		  var all = document.all ? document.all : document.getElementsByTagName('*');
		  var elements = new Array();
		  for (var e = 0; e < all.length; e++) {
			if (all[e].className == className) {
				elements[elements.length] = all[e];
				break;
			}
		  }
		  return elements;
		 }

代碼二、

function getElementsByClassName(className,parent){
        var oParent=parent?document.getElementById("parent"):document;
        var oLis=oParent.getElementsByTagName("*");
        var arr=[];
        for(var i=0;i<oLis.length;i++){
          if(oLis[i].className==className){
            arr.push(oLis[i])
          };
          return arr;
        }
      };

class有多個的時候同樣匹配,如class="test1 test2 test3"

function getElementsByClassName (className) {
		  var all = document.all ? document.all : document.getElementsByTagName('*');
		  var elements = new Array();
		  for (var e = 0; e < all.length; e++) {
			 var classList = all[e].className.split(" ");
			 for(var i=0;i<classList.length;i++){
				 if (classList[i] == className) {
					elements[elements.length] = all[e];
				  break;
				 }
			 }
		  }
		  return elements;
		 }

下面再附一個完整的測試代碼:

<!DOCTYPE html>
<html>
<head>
  <meta charset='UTF-8' />
  <script>
    /*JS寫getElementByClassName;
    我發(fā)現(xiàn)chorm、firefox、ie都支持document.getElementsByClassName */
      window.onload = function(){
        var adom = document.getElementsByClassName('a1');
        for(var i = 0;i<adom.length;i++)
          adom[i].style.backgroundColor="red";
      };
      function getElementByClassName(className){
        var elems = [];
        if(!document.getElementsByClassName){
          alert("no exit");
          var dom = document.getElementByTagName('*');
          for(var i = 0;i<dom.length;i++){
            if(dom[i].className == className)
              elems.push(dom[i]);
          }
        }else{
          elems = document.getElementsByClassName(className);
          alert('exit');
        }
        return elems;
      }
  </script>
</head>

<body>
  <div id="a1">a1</div>
  <div class="a1">a1</div>
  <div class="a1">a1</div>
  <div id="a1">a1</div>
  <div class="a1">a1</div>
</body>

</html>

效果如圖所示:

相關(guān)文章

  • javascript字符串對象常用api函數(shù)小結(jié)(連接,替換,分割,轉(zhuǎn)換等)

    javascript字符串對象常用api函數(shù)小結(jié)(連接,替換,分割,轉(zhuǎn)換等)

    這篇文章主要介紹了javascript字符串對象常用api函數(shù),結(jié)合實例形式總結(jié)分析了javascript常用的連接、替換、分割、轉(zhuǎn)換等相關(guān)函數(shù)與使用方法,需要的朋友可以參考下
    2016-09-09
  • 簡單實現(xiàn)js懸浮導(dǎo)航效果

    簡單實現(xiàn)js懸浮導(dǎo)航效果

    這篇文章主要教大家如何簡單實現(xiàn)js懸浮導(dǎo)航效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • jsonp跨域請求詳解

    jsonp跨域請求詳解

    這篇文章主要為大家詳細(xì)介紹了jsonp跨域請求的相關(guān)資料,激活了所有接口支持瀏覽器跨域請求的封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 如何在vscode中使用Typescript并運(yùn)行詳解

    如何在vscode中使用Typescript并運(yùn)行詳解

    在VSCode中編寫的TypeScript代碼不能直接運(yùn)行,需要先用tsc編譯為JavaScript,然后才能運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于如何在vscode中使用Typescript并運(yùn)行的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • JS實現(xiàn)的碰撞檢測與周期移動完整示例

    JS實現(xiàn)的碰撞檢測與周期移動完整示例

    這篇文章主要介紹了JS實現(xiàn)的碰撞檢測與周期移動,結(jié)合完整實例形式分析了javascript結(jié)合時間函數(shù)的頁面元素屬性動態(tài)操作及事件響應(yīng)相關(guān)使用技巧,需要的朋友可以參考下
    2019-09-09
  • JavaScript實現(xiàn)的DOM樹遍歷方法詳解【二叉DOM樹、多叉DOM樹】

    JavaScript實現(xiàn)的DOM樹遍歷方法詳解【二叉DOM樹、多叉DOM樹】

    這篇文章主要介紹了JavaScript實現(xiàn)的DOM樹遍歷方法,結(jié)合實例形式詳細(xì)分析了二叉DOM樹、多叉DOM樹的前序、中序與后序遍歷,以及多叉樹深度優(yōu)先、廣度優(yōu)先等相關(guān)遍歷操作實現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • JavaScript報錯:Uncaught ReferenceError: XYZ is not defined的解決方法

    JavaScript報錯:Uncaught ReferenceError: XYZ is&

    在 JavaScript 編程中,“Uncaught ReferenceError: XYZ is not defined” 是一種常見的錯誤,這種錯誤通常發(fā)生在試圖使用一個未聲明的變量或標(biāo)識符時,故本文給大家介紹了JavaScript報錯:Uncaught ReferenceError: XYZ is not defined的解決方法,需要的朋友可以參考下
    2024-07-07
  • JS實現(xiàn)圖片局部放大或縮小的方法

    JS實現(xiàn)圖片局部放大或縮小的方法

    這篇文章主要介紹了JS實現(xiàn)圖片局部放大或縮小的方法,涉及javascript事件響應(yīng)及頁面元素動態(tài)操作相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • JS實現(xiàn)的定時器展示簡單秒表、頁面彈框及跳轉(zhuǎn)操作完整示例

    JS實現(xiàn)的定時器展示簡單秒表、頁面彈框及跳轉(zhuǎn)操作完整示例

    這篇文章主要介紹了JS實現(xiàn)的定時器展示簡單秒表、頁面彈框及跳轉(zhuǎn)操作,結(jié)合實例形式分析了JavaScript時間函數(shù)及頁面元素動態(tài)操作相關(guān)使用技巧,需要的朋友可以參考下
    2020-01-01
  • JavaScript字符串_動力節(jié)點Java學(xué)院整理

    JavaScript字符串_動力節(jié)點Java學(xué)院整理

    JavaScript中的字符串就是用''或""括起來的字符表示。下面通過本文給大家介紹JavaScript字符串的相關(guān)知識,感興趣的朋友一起看看吧
    2017-06-06

最新評論

孙吴县| 精河县| 洛南县| 井冈山市| 海淀区| 宜兰县| 卓尼县| 罗江县| 锡林浩特市| 南召县| 德化县| 黑河市| 双柏县| 长沙县| 玉树县| 射阳县| 东兴市| 民丰县| 儋州市| 安阳市| 边坝县| 巴青县| 贺州市| 顺平县| 武功县| 和静县| 遂平县| 乳山市| 同江市| 稻城县| 大姚县| 达拉特旗| 临城县| 台州市| 黑水县| 宣城市| 五河县| 买车| 永善县| 冷水江市| 英超|