成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS基礎(chǔ)篇--如何用JavaScript判斷dom是否有存在某class的值?

馬忠志 / 2787人閱讀

摘要:例如判斷節(jié)點(diǎn)的是否有。的實(shí)現(xiàn)方式源碼的實(shí)現(xiàn)方式源碼里面用到了,是的屬性,屬性返回以數(shù)字值返回指定節(jié)點(diǎn)的節(jié)點(diǎn)類型。如果節(jié)點(diǎn)是屬性節(jié)點(diǎn),則屬性將返回。代碼需要了解屬性,點(diǎn)擊屬性文章問題地址

例如:






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

1.jquery的實(shí)現(xiàn)方式
$("html").hasClass("no-js");

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

var rclass = /[	
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;
    }
})

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

如果節(jié)點(diǎn)是元素節(jié)點(diǎn)(Element),則 nodeType 屬性將返回 1。

如果節(jié)點(diǎn)是屬性節(jié)點(diǎn)(Attr),則 nodeType 屬性將返回 2。

如果節(jié)點(diǎn)是文本節(jié)點(diǎn)(Text),則nodeType 屬性將返回 3。

例如,獲得 body 元素的節(jié)點(diǎn)類型:

document.body.nodeType;//1

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

2.js的實(shí)現(xiàn)方式
function hasClass(element, cls) {
    return (" " + element.className + " ").indexOf(" " + cls + " ") > -1;
}

hasClass(document.querySelector("html"), "no-js");
3.H5的classList

說(shuō)明下:

字符串的indexOf方法是無(wú)法區(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") ) ;

需要了解HTML DOM classList屬性,點(diǎn)擊HTML DOM classList 屬性文章
問題地址:https://segmentfault.com/q/10...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81515.html

相關(guān)文章

  • 前端基礎(chǔ)入門

    摘要:手把手教你做個(gè)人火的時(shí)候,隨便一個(gè)都能賺的盆滿缽滿,但是,個(gè)人沒有服務(wù)端,沒有美工,似乎就不能開發(fā)了,真的是這樣的嗎秘密花園經(jīng)典的中文手冊(cè)。涵蓋前端知識(shí)體系知識(shí)結(jié)構(gòu)圖書推薦以及入門視頻教程,全的簡(jiǎn)直不要不要的了。 JavaScript 實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制指定區(qū)域文本 html5 的 webAPI 接口可以很輕松的使用短短的幾行代碼就實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制區(qū)域文本的功能,不需要依賴 flash。...

    shinezejian 評(píng)論0 收藏0
  • JQuery基礎(chǔ)修煉-樣式

    摘要:具有相同的父元素,并匹配過濾選擇器子選擇器選擇所有指定元素中指定的的直接子元素。可見元素的寬度或高度,是大于零。元素的或被認(rèn)為是可見的,因?yàn)樗麄內(nèi)匀徽加每臻g布局。 jQuery對(duì)象轉(zhuǎn)化成DOM對(duì)象 ? ? jQuery庫(kù)本質(zhì)上還是JavaScript代碼,它只是對(duì)JavaScript語(yǔ)言進(jìn)行包裝處理,為了是提供更好更方便快捷的DOM處理與開發(fā)常見中經(jīng)常使用的功能。我們可以用jQuery...

    _Dreams 評(píng)論0 收藏0
  • JQuery基礎(chǔ)修煉-樣式

    摘要:具有相同的父元素,并匹配過濾選擇器子選擇器選擇所有指定元素中指定的的直接子元素??梢娫氐膶挾然蚋叨?,是大于零。元素的或被認(rèn)為是可見的,因?yàn)樗麄內(nèi)匀徽加每臻g布局。 jQuery對(duì)象轉(zhuǎn)化成DOM對(duì)象 ? ? jQuery庫(kù)本質(zhì)上還是JavaScript代碼,它只是對(duì)JavaScript語(yǔ)言進(jìn)行包裝處理,為了是提供更好更方便快捷的DOM處理與開發(fā)常見中經(jīng)常使用的功能。我們可以用jQuery...

    luck 評(píng)論0 收藏0
  • jQuery基礎(chǔ)(一) :樣式

    摘要:如下就是對(duì)象或是如下以下兩者的修改都是等價(jià)的但是使用不能很好的操作,所以可以將其轉(zhuǎn)換成對(duì)象把元素轉(zhuǎn)化成的對(duì)象總體,表示當(dāng)前的上下文對(duì)象是一個(gè)對(duì)象,可以調(diào)用對(duì)象所擁有的屬性和方法。代表的上下文對(duì)象是一個(gè)的上下文對(duì)象,可以調(diào)用的方法和屬性值。 一:初識(shí) jquery: 1、 jQuery 只是一個(gè)庫(kù),不需要特別的安裝,只需要我們?cè)陧?yè)面 標(biāo)簽內(nèi)中通過 script 標(biāo)簽?zāi)_本引入 jQuer...

    SegmentFault 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<