HTML5--新增DOM操作、類樣式、自定義屬性一(10)


這節主要學習HTML5中新增的DOM操作,獲取dom元素、操作元素類樣式、自定義屬性

1.新增獲取dom元素API

  1>querySelector(選擇器名稱)

  作用:獲取單個元素,如果獲取的元素不止一個,那么只會返回滿足條件的第一個元素

  參數:選擇器

    標簽選擇器:標簽本身

    選擇器:類名前加'.'

    id選擇器:類名前加'#'

  2>querySelectorAll(選擇器名稱)

  作用:獲取滿足條件的所有元素--結果是類數組

<body>
<ul>
    <li>請選擇</li>
    <li class="red">前端</li>
    <li class="green">java</li>
    <li class="blue">javascript</li>
    <li id="c">c++</li>
</ul>
<script>
    window.onload=function(){
        // /!*querySelector:獲取單個元素,如果獲取的元素不止一個,那么只會返回滿足條件的第一個元素*!/
        // /!*參數要求:如果是類選擇器,必須添加.  如果是id選擇器, 必須添加# ,否則當成標簽處理*!/
        var javaLi=document.querySelector(".green");
        var javaLi=document.querySelector("#c");
        console.log(javaLi);

        // /!*querySelectorAll獲取滿足條件的所有元素--數組*!/
        var allLi=document.querySelectorAll("li")[0];
        console.log(allLi);
    }
</script>
</body>

2.操作元素類樣式

1>classList屬性

  作用:元素classList屬性可以獲取元素的所有類樣式---類數組

  方法

    add(類名):標在原有類樣式基礎上追加新類樣式。

    remove(類名):刪除指定的類樣式。

    toggle(類名):切換,如果有指定類名的類樣式就刪除,否則就添加。

    contains(類名):判斷元素classList中是否包含指定類樣式

    item(索引):獲取classList指定索引的類樣式

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .red{
            color:red
        }
        .green{
            color: green;
        }
        .blue{
            color: blue;
        }
        .underline{
            text-decoration: underline;
        }
    </style>
</head>
<body>
<ul>
    <li class="red">油潑面</li>
    <li class="blue">匯通面</li>
    <li>岐山臊子面</li>
    <li class="red">棍棍面</li>
</ul>
<input type="button" value="為第一個li元素添加樣式" id="add">
<input type="button" value="為第二個li元素移除樣式" id="remove">
<input type="button" value="為第三個li元素切換樣式" id="toggle">
<input type="button" value="判斷第四個li元素是否包含某個樣式" id="contain">
<script>
    window.onload=function(){
        /*add:為元素添加指定名稱的樣式.一次只能添加一個樣式*/
        document.querySelector("#add").onclick=function(){
            /*classList:當前元素的所有樣式列表-數組*/
            document.querySelector("li").classList.add("red");
            document.querySelector("li").classList.add("underline");
            /*獲取樣式*/
            var result=document.querySelector("li").classList.item(2);
            console.log(result);
        }

        /*remove:為元素移除指定名稱的樣式(不是移除class屬性),一次也只能移除一個*/
        document.querySelector("#remove").onclick=function(){
            document.querySelector(".blue").classList.remove("blue");
        }

        /*toggle:切換元素的樣式:如果元素之前沒有指定名稱的樣式則添加。如果有則移除*/
        document.querySelector("#toggle").onclick=function(){
            document.querySelectorAll("li")[2].classList.toggle("green");
        }

        /*contains:判斷元素是否包含指定名稱的樣式,返回true/false*/
        document.querySelector("#contain").onclick=function(){
            var isContain=document.querySelectorAll("li")[3].classList.contains("red");
            console.log(isContain);
        }
    }
</script>
</body>

3.自定義屬性

1>如何定義

  規范

    i:以data開頭

    ii:data后必須有一個字符

  建議:

    i:名稱都小寫

    ii:名稱中最好不要包含特殊符號

2>如何獲取

  方法:dataset[屬性名],屬性名必須使用駝峰法命名。

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p data-school-name="itcast">音樂</p>
<p data-name="itcast">貓咪</p>

<!--取值-->
<script>
    window.onload=function(){
        var p=document.querySelector("p");
        /*獲取自定義屬性值*/
        /*將data-后面的單詞使用camel命名法連接:必須使用camel合法法獲取值否則有可能無法獲取到值*/
        var value=p.dataset["schoolName"];//data-school-name
        console.log(value);
    }
</script>
</body>

 


免責聲明!

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



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