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>

 

posted @ 2018-04-29 21:41  诸葛不亮  阅读(1840)  评论(0编辑  收藏  举报