日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

如何用JavaScript判断dom是否有存在某class的值?

發(fā)布時間:2025/3/19 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何用JavaScript判断dom是否有存在某class的值? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

例如:

<html class="no-js"> <head> </head> <body> </body> </html>

判斷html節(jié)點的class是否有no-js。

1.jquery的實現(xiàn)方式

$("html").hasClass('no-js');

jquery源碼的實現(xiàn)方式:

var rclass = /[\t\r\n\f]/g;jQuery.fn.extend({hasClass: function(selector) {var className = " " + selector + " ",i = 0,l = this.length;for (; i < l; i++) {if (this[i].nodeType === 1 &&(" " + this[i].className + " ").replace(rclass, " ").indexOf(className) > -1) {return true;}}return false;} })

源碼里面用到了nodeType,nodeType是HTML DOM 的nodeType 屬性,nodeType 屬性返回以數(shù)字值返回指定節(jié)點的節(jié)點類型。常用的一般有三種:

  • 如果節(jié)點是元素節(jié)點(Element),則 nodeType 屬性將返回 1。
  • 如果節(jié)點是屬性節(jié)點(Attr),則 nodeType 屬性將返回 2。
  • 如果節(jié)點是文本節(jié)點(Text),則nodeType 屬性將返回 3。
  • 例如,獲得 body 元素的節(jié)點類型:

    document.body.nodeType;//1

    如果想了解更多的節(jié)點類型,可查看:HTML DOM nodeType 屬性

    2.js的實現(xiàn)方式

    function hasClass(element, cls) {return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1; }hasClass(document.querySelector("html"), 'no-js');

    想詳細(xì)了解DOM選擇器querySelector,可點擊《JS基礎(chǔ)篇--原生JS強大DOM選擇器querySelector與querySelectorAll》。

    3.H5的classList

    說明下:

  • 字符串的indexOf方法是無法區(qū)分.no-js和.no-js-indeed這樣的類;
  • 類名的分隔符可能不是空格,還有可能是\t等。
  • 代碼:

    var hasClass = (function(){var div = document.createElement("div") ;if( "classList" in div && typeof div.classList.contains === "function" ) {return function(elem, className){return elem.classList.contains(className) ;} ;} else {return function(elem, className){var classes = elem.className.split(/\s+/) ;for(var i= 0 ; i < classes.length ; i ++) {if( classes[i] === className ) {return true ;}}return false ;} ;} })() ;alert( hasClass(document.documentElement, "no-js") ) ;

    問題地址:https://segmentfault.com/q/1010000002501794

    總結(jié)

    以上是生活随笔為你收集整理的如何用JavaScript判断dom是否有存在某class的值?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。