CH15-DOM
本章目标
- 了解DOM模型的概念和结构
- 掌握如何使用DOM获取元素
- 掌握如何使用DOM操作属性
一、DOM概述
1.1 什么是DOM?
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)
1.2DOM的结构
DOM把文档视为一种树形结构,以树节点的方式表示文档中的各个内容通过
二、使用DOM获取html元素
2.1 getElementById()
getElementById():通过 id 获取html 元素
例:点击“查看”按钮,显示文本框中输入的姓名
1 2 3 4 5 6 7 8 9 10 11 12 13
| 姓名: <input type="text" id="name"/> <input type="button" value="查看" onclick="show()"/>
<script type="text/javascript"> function show() { var a=document.getElementById("name"); alert(a.value); } </script>
|
2.2 getElementsByClassName()
getElementsByClassName():返回文档中所有指定类名的元素集合
例:点击更改按钮更改第一个元素的文本
点击前:
点击后:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <h1 class="title" >这是标题</h1> <h1 class="title" >这是标题2</h1> <input type="button" value="更改" onclick="show()"/>
<script type="text/javascript"> function show() { var x=document.getElementsByClassName('title'); x[0].innerHTML="Hello World!"; } </script>
|
2.3 getElementsByTagName()
getElementsByTagName():通过标签名获得页面中的元素,返回一个数组
需求:查看input标签的个数
效果:
1 2 3 4 5 6 7 8 9 10 11 12
| <form> <input type="text" id="name"/> <input type="button" value="查看input标签的个数" onclick="fun()"/> <form> <script> function fun() { var obj = document.getElementsByTagName("input"); alert(obj.length); } </script>
|
2.4 querySelector()
querySelector():获取HTML的元素
例:获取Html id的元素修改元素的文本
修改后:
1 2 3 4 5 6 7 8
| <p id="demo">这是一个p标签</p> <button onclick="myFunction()">点击我修改 id="demo" 的 p 元素内容</button> <script> function myFunction() { document.querySelector("#demo").innerHTML = "Hello World!"; } </script>
|
2.5 querySelectorAll()
querySelectorAll():返回文档中匹配指定 CSS 选择器的所有元素
例:获取所有的example元素修改第一个example元素的背景颜色
修改前:
修改后:
1 2 3 4 5 6 7 8 9 10 11
| <h2 class="example">这是一个h2标题</h2> <p class="example">这是一个p段落</p> <button onclick="myFunction()">点我</button> <script> function myFunction() { var x = document.querySelectorAll(".example"); x[0].style.backgroundColor = "red"; } </script>
|
三、使用DOM操作属性
3.1 innerHTML
innerHTML:获取对象的内容 或 向对象插入内容
例:点击修改文本按钮 修改html元素的文本
修改前:
修改后:
1 2 3 4 5 6 7 8
| <p id="demo">p标签</p> <input type="button" onclick="myFunction()" value="修改文本"> <script> function myFunction() { var x = document.getElementById('demo').innerHTML="这是一个段落"; } </script>
|
3.2 innerText
innerText:设置或返回指定节点及其所有子节点的文本内容
例:点击修改文本 返回指定的纯文本信息
点击前:
点击后:
1 2 3 4 5 6 7 8
| <p id="demo">p标签</p> <input type="button" onclick="myFunction()" value="修改文本"> <script> function myFunction() { document.getElementById("demo").innerText="<h1>My First JavaScript</h1>"; } </script>
|
3.3 getAttribute
getAttribute:获取元素属性的值
例:获取html元素属性的样式
效果图:
1 2 3 4 5 6 7 8
| <input type="text" id="btn" style="background-color:aqua;"> <input type="button" onclick="myFunction()" value="查看"> <script> function myFunction() { alert(document.getElementById("btn").getAttribute("style")); } </script>
|
3.4 setAttribute
setAttribute:设置元素的属性
例:设置红盒子的Html属性值
效果图:
1 2 3 4 5 6 7
| <div id="red">红盒子</div> <script> var red = document.getElementById("red"); red.setAttribute("title", "这是红盒子"); </script>
|
3.5 removeAttribute
removeAttribute:从指定元素中删除一个属性
例:获取span元素删除对应的样式
删除前:
删除后:
1 2 3 4 5 6 7 8
| <span style="color:red">Hello World</span> <button onclick="muFunction()">点我删除属性</button> <script> function muFunction(){ document.getElementsByTagName("span")[0].removeAttribute("style"); } </script>
|
3.6 style
style:设置样式
例:设置字体颜色为蓝色
1 2 3 4 5 6 7 8 9 10
| <form> <p id="p">Hello World!</p> <input type="button" value="字体颜色" onclick="fun()" /> </form> <script type= "text/javascript"> function fun(){ document.getElementById("p").style.color="blue"; } </script>
|
3.7 className
className:设置或返回元素的 class 属性
需求:用户点击div区域时,修改div的样式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <style type="text/css"> .div1{ border:1px dashed red; background-color:pink; width:200px; height:200px; } .div2{ border:1px dashed yellow; background-color:blue; width:300px; height:300px; } </style> <div class="div1" onclick="change();" id="div"></div> <script type="text/javascript"> function change() { var d = document.getElementById("div"); d.className = "div2"; } </script>
|
注:使用className一次修改多个css样式时,必须先将对应的样式通过类选择器编辑好
例:用户点击div区域时,修改div的样式,再次点击时,修改回原来的样式
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <script type="text/javascript"> function change() { var d = document.getElementById("div"); if(d.className=="div1") { d.className = "div2"; } else { d.className="div1" } } </script>
|
四、课后作业
练习1:使用 HTML DOM 更改图像 src 属性的值。
1
| <img id="image" src="a.gif"/>
|
练习2:点击删除按钮删除图片
练习3:点击替换按钮进行图片替换
练习4:关闭广告
练习5:开关灯 效果如下:
关灯:
开灯: