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

原生js實(shí)現(xiàn)addClass,removeClass,hasClass方法

 更新時(shí)間:2016年04月27日 08:48:00   投稿:lijiao  
這篇文章主要介紹了原生js實(shí)現(xiàn)addClass,removeClass,hasClass方法和使用原生JS實(shí)現(xiàn)jQuery的addClass, removeClass, hasClass函數(shù)功能,需要的朋友可以參考下

本文分為兩部分進(jìn)行講解,具體內(nèi)容如下

第一部分:原生js實(shí)現(xiàn)addClass,removeClass,hasClass方法

function hasClass(elem, cls) {
  cls = cls || '';
  if (cls.replace(/\s/g, '').length == 0) return false; //當(dāng)cls沒有參數(shù)時(shí),返回false
  return new RegExp(' ' + cls + ' ').test(' ' + elem.className + ' ');
}

function addClass(ele, cls) {
  if (!hasClass(elem, cls)) {
    ele.className = ele.className == '' ? cls : ele.className + ' ' + cls;
  }
}

function removeClass(ele, cls) {
  if (hasClass(elem, cls)) {
    var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, '') + ' ';
    while (newClass.indexOf(' ' + cls + ' ') >= 0) {
      newClass = newClass.replace(' ' + cls + ' ', ' ');
    }
    elem.className = newClass.replace(/^\s+|\s+$/g, '');
  }
}

第二部分:使用原生JS實(shí)現(xiàn)jQuery的addClass, removeClass, hasClass函數(shù)功能

function addClass(obj, cls){
  var obj_class = obj.className,//獲取 class 內(nèi)容.
  blank = (obj_class != '') ? ' ' : '';//判斷獲取到的 class 是否為空, 如果不為空在前面加個(gè)'空格'.
  added = obj_class + blank + cls;//組合原來的 class 和需要添加的 class.
  obj.className = added;//替換原來的 class.
}
 
function removeClass(obj, cls){
  var obj_class = ' '+obj.className+' ';//獲取 class 內(nèi)容, 并在首尾各加一個(gè)空格. ex) 'abc    bcd' -> ' abc    bcd '
  obj_class = obj_class.replace(/(\s+)/gi, ' '),//將多余的空字符替換成一個(gè)空格. ex) ' abc    bcd ' -> ' abc bcd '
  removed = obj_class.replace(' '+cls+' ', ' ');//在原來的 class 替換掉首尾加了空格的 class. ex) ' abc bcd ' -> 'bcd '
  removed = removed.replace(/(^\s+)|(\s+$)/g, '');//去掉首尾空格. ex) 'bcd ' -> 'bcd'
  obj.className = removed;//替換原來的 class.
}
 
function hasClass(obj, cls){
  var obj_class = obj.className,//獲取 class 內(nèi)容.
  obj_class_lst = obj_class.split(/\s+/);//通過split空字符將cls轉(zhuǎn)換成數(shù)組.
  x = 0;
  for(x in obj_class_lst) {
    if(obj_class_lst[x] == cls) {//循環(huán)數(shù)組, 判斷是否包含cls
      return true;
    }
  }
  return false;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)javascript程序設(shè)計(jì)有所幫助。

  • 使用TypeScript接口優(yōu)化數(shù)據(jù)結(jié)構(gòu)的示例詳解

    使用TypeScript接口優(yōu)化數(shù)據(jù)結(jié)構(gòu)的示例詳解

    在現(xiàn)代軟件開發(fā)中,數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)至關(guān)重要,它直接影響到程序的性能和可維護(hù)性,TypeScript 作為一種靜態(tài)類型的超集,為 JavaScript 帶來了類型系統(tǒng),本文將探討如何利用 TypeScript 的接口(Interfaces)來優(yōu)化數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下
    2024-09-09
  • js檢查是否全是中文

    js檢查是否全是中文

    判斷是否全是中文的腳本
    2008-09-09
  • JS實(shí)現(xiàn)簡(jiǎn)單的九宮格抽獎(jiǎng)

    JS實(shí)現(xiàn)簡(jiǎn)單的九宮格抽獎(jiǎng)

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)簡(jiǎn)單的九宮格抽獎(jiǎng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 如何使用pdf.js展示pdf文件(親測(cè)可用)

    如何使用pdf.js展示pdf文件(親測(cè)可用)

    這篇文章主要介紹了如何使用pdf.js展示pdf文件(親測(cè)可用),如果只是電腦端,可通過 iframe 標(biāo)簽嵌套預(yù)覽,文中介紹了安裝電腦ios的通用方法,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • javascript運(yùn)算符——邏輯運(yùn)算符全面解析

    javascript運(yùn)算符——邏輯運(yùn)算符全面解析

    下面小編就為大家?guī)硪黄猨avascript運(yùn)算符——邏輯運(yùn)算符詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • uniapp 引用 js 組件的方法(場(chǎng)景分析)

    uniapp 引用 js 組件的方法(場(chǎng)景分析)

    在UniApp開發(fā)過程中,我們不僅需要掌握各種UI組件的使用方法,還需要了解如何在項(xiàng)目中引入JS文件,在本文中,我將介紹UniApp中如何引入JS的方法,感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • js實(shí)現(xiàn)盒子拖拽動(dòng)畫效果

    js實(shí)現(xiàn)盒子拖拽動(dòng)畫效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)盒子拖拽動(dòng)畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 原生JS實(shí)現(xiàn)N級(jí)菜單的代碼

    原生JS實(shí)現(xiàn)N級(jí)菜單的代碼

    最近有項(xiàng)目要實(shí)現(xiàn)N級(jí)菜單,首先從布局入手,即判斷是否有下級(jí)菜單,具體實(shí)現(xiàn)代碼,大家可以參考下本文
    2017-05-05
  • Js參數(shù)RSA加密傳輸之jsencrypt.js的使用

    Js參數(shù)RSA加密傳輸之jsencrypt.js的使用

    這篇文章主要介紹了Js參數(shù)RSA加密傳輸之jsencrypt.js的使用,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 最新評(píng)論

    浦城县| 德保县| 德格县| 东乌珠穆沁旗| 金乡县| 绵竹市| 松滋市| 东明县| 恩平市| 嵊泗县| 清原| 聂拉木县| 陵水| 丹凤县| 新宁县| 河间市| 射洪县| 黎城县| 万盛区| 柳林县| 喜德县| 慈溪市| 邯郸县| 蒙山县| 关岭| 巫溪县| 杭锦旗| 永丰县| 昌平区| 禹州市| 陈巴尔虎旗| 三原县| 永泰县| 井研县| 伊吾县| 唐山市| 徐州市| 泸西县| 游戏| 九台市| 泰州市|