• 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>
  • 相关阅读:
    Oracle存储过程小记DUAL
    线程私有数据(TSD)
    Unix 五种基本I/O模型的区别
    Redis系列(0)应用场景
    linux ubuntu引导 win7
    Redis系列(一)启动流程分析
    c++ 内存管理小结
    设计模式Facade模式应用场景
    学会理财不做穷人
    jquery 注册验证例子
  • 原文地址:https://www.cnblogs.com/diweikang/p/8972044.html
Copyright © 2020-2023  润新知