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>