H5新增屬性classList


H5新增屬性classList

h5中新增了一個classList,原生js可以通過它來判斷獲取dom節點有無某個class。

classList是html元素對象的成員,它的使用非常簡單,比如

    console.log(document.body.classList);

目前已知classList API有length,item,add,remove,toggle,contains

length

靜態屬性。可以獲取元素類名的個數,使用方式:

    var len = document.body.classList.length;

item( Number )

方法。可以獲取元素的類名,接受一個參數,即數字索引。使用方式:

    //如果index超出范圍,則返回null
    var cls = document.body.classList.item(index); 

add( String [, String] )

方法。可以給元素添加類名,就像jquery中的addClass()。使用方式:

    document.body.classList.add('myclass');
    //遺憾的是,它一次性只能增加一個類,比如以下方式將會報錯
    //document.body.classList.add('class1 class2');

remove( String [,String] )

方法。可以將元素的類名刪除,就像jquery中的removeClass()。和add()方法一樣,一次只能刪除一個類名。使用方式:

    document.body.classList.remove('myclass');

toggle( String [, force] )

方法。可以給元素交替增加類名和刪除類名,就像jquery中的toggleClass()。

當只有一個參數時:切換 class value,即如果類存在,則刪除它並返回false,如果不存在,則添加它並返回true。

當存在第二個參數時:如果第二個參數的計算結果為true,則添加指定的類值,如果計算結果為false,則刪除它。

使用方式:

    document.body.classList.toggle('myclass');

contains( String )

方法。可以檢測判斷元素是否包含某個類名,返回false或true。使用方式:

    document.body.classList.contains('myclass'); //返回true或者false

示例

    // div是具有class =“foo bar”的<div>元素的對象引用
    div.classList.remove("foo");
    div.classList.add("anotherclass");

    // 如果visible被設置則刪除它,否則添加它
    div.classList.toggle("visible");

    // 添加/刪除 visible,取決於測試條件,i小於10
    div.classList.toggle("visible", i < 10);

    alert(div.classList.contains("foo"));

    //添加或刪除多個類
    div.classList.add("foo","bar");
    div.classList.remove("foo", "bar");

H5在移動端的兼容性相對來說已經很不錯,在不用jquery的時候,使用H5的新屬性,可以省下不少功夫的

另外判斷dom節點有無某個class的方法可以通過getAttribute()這個方法。即

        <html>
        <head>
        </head>
        <body>
            <div>
                <p>1</p>
                <p class="test">2</p>
                <p>3</p>
            </div>
            <script>
            var p = document.getElementsByTagName('p');
                for(var i = 0;i <p.length;i++){
                //方法一
                    if(p[i].className=='test'){
                        console.log(p[i].innerHTML)
                    }
                //方法二,用getAttribute()這個方法
                    //if(p[i].getAttribute("class")=='test'){
                    //console.log(p[i].innerHTML);
                    //}
                }
            </script>
        </body>
        </html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM