国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

詳解js中class的多種函數(shù)封裝方法

2019-11-20 10:52:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講解了js中class的多種函數(shù)封裝方法,分享給大家供大家參考,具體內(nèi)容如下

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>關(guān)于class的多種函數(shù)封裝</title><style>body{  margin: 0;}li{  height: 20px;}</style></head><body><div class="box" id="box">  <ul class="list">    <li class="in abc ab "></li>    <li class="in ac b "></li>    <li class="in a "></li>    <li class="in acb "></li>    <li class="in ba "></li>    <li class="abc"></li>  </ul></div><script>//數(shù)組的indexOf方法封裝function indexOf(arr,value,start){  //如果不設(shè)置start,則默認(rèn)start為0  if(arguments.length == 2){    start = 0;  }  //如果數(shù)組中存在indexOf方法,則用原生的indexOf方法  if(arr.indexOf){    return arr.indexOf(value,start);  }  for( var i = 0; i < arr.length; i++){    if(arr[i] === value){      return i;    }  }  return -1;}//數(shù)組去重方法封裝function noRepeat(arr){  var result = [];  for( var i = 0; i < arr.length; i++){    if(indexOf(result,arr[i]) == -1){      result.push(arr[i]);    }  }  return result;}//inArray方法封裝function inArray(arr,value){  for(var i = 0; i < arr.length; i++){    if(arr[i] === value){      return true;    }  }  return false;}//去除首尾空格函數(shù)封裝function trim(arr){  var result = arr.replace(/^/s+|/s+$/g,'');  return result;}//getElementsByClassName函數(shù)封裝function getElementsByClassName(parentObj,classStr){  var result = [];  var objs = parentObj.getElementsByTagName('*');   //如果classStr用空格分隔,則表示class必須同時(shí)滿足才有效  var targetArr1 = noRepeat(trim(classStr).split(//s+/));  //如果classStr用逗號(hào)分隔,則表示class只要有一個(gè)滿足就有效  var targetArr2 = noRepeat(trim(classStr).split(//s*,/s*/));     if(classStr.indexOf(',') == -1 ){    //用空格分隔或者只有一個(gè)class    label: for(var i = 0; i < objs.length; i++){      var arr = noRepeat(trim(objs[i].className).split(//s+/));      for( var j = 0; j < targetArr1.length; j++){        if(!inArray(arr,targetArr1[j])){          continue label;        }      }      result.push(objs[i]);    }    return result;  }else{    //用逗號(hào)分隔    label: for(var i = 0; i < objs.length; i++){        var arr = noRepeat(trim(objs[i].className).split(//s+/));        for( var j = 0; j < targetArr2.length; j++){          if(inArray(arr,targetArr2[j])){            result.push(objs[i]);            continue label;          }        }               }      return result;       }} //addclass函數(shù)封裝function addClass(obj,classStr){  var array = noRepeat(trim(obj.className).split('/s+'));  if(!inArray(array,classStr)){    array.push(classStr);  }  obj.className = array.join(' ');  return obj;}//removeclass函數(shù)封裝function removeClass(obj,classStr){  var array = noRepeat(trim(obj.className).split('/s+'));  var index = indexOf(array,classStr);  if(index != -1){    classStr.splice(index,1);    obj.className = classStr.join(' ');  }  return obj;}//toggleClass函數(shù)封裝function toggleClass(obj,classStr){  var array = noRepeat(trim(obj.className).split('/s+'));  if(inArray(array,classStr)){    removeClass(obj,classStr);  }else{    addClass(obj,classStr);  }}</script></body></html>

希望本文所述對(duì)大家學(xué)習(xí)javascript程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 利津县| 柏乡县| 铜梁县| 吉林省| 奇台县| 德昌县| 东安县| 汽车| 游戏| 乌拉特中旗| 长岛县| 即墨市| 天门市| 恩施市| 休宁县| 怀来县| 凤台县| 宝应县| 克拉玛依市| 慈溪市| 宣化县| 疏勒县| 彩票| 平远县| 南部县| 吴堡县| 吉林省| 屏南县| 望江县| 曲靖市| 延吉市| 阿合奇县| 伊吾县| 丹江口市| 奉贤区| 贵溪市| 台江县| 东乡族自治县| 密云县| 嵊州市| 五大连池市|