JS-DOM编程
DOM编程
DOM(Document Object Model)编程就是使用document对象的API完成对网页HTMl文档进行动态修改,以实现网页数据和样式动态变化效果的编程
document准确来说是window对象的属性对象之一
document是一个树形结构,以元素(属性和文本)作为树的结点
Document直接获取指定元素
- document.getElementById():根据id获取当前页面唯一元素
- document.getElementsByTagName():根据标签获取当前页面多个元素
- document.getElementsByName():根据name属性值获取当前页面多个元素
- document.getElementsByClassName():根据class属性值获取当前页面多个元素
多个元素的获取会返回一个htmlCollection对象,用for循环遍历即可获得每个元素
1 | |
使用foreach循环遍历不仅会获得元素,还会获得对象中的其他方法
1 | |
通过方法间接访问元素
- 父元素.children 通过父元素获取子元素
1 | |
- 子元素.parentElement获取父元素
1 | |
- 通过.previousElementSibling和.nextElementSibling获取当前元素的兄弟元素
1 | |
对元素进行操作
操作元素的属性:元素名.属性名=””
操作元素的样式:元素名.style.样式名=””
- 当遇到带有中横线的样式名,要采用驼峰命名,例如”background-color”要写成”backgroundColor”
操作元素的文本:元素名.innerText=”” 元素名.htmlText=””
- innerText不会识别html中的标签结构,而htmlText能识别html标签
增加元素
document.createElement(“元素名”):创建一个新元素
父元素.appendChild(新元素):在父元素中追加一个新元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31<!-- 在列表最后添加元素"长沙" -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script>
function addCs() {
//新建元素li
var csli = document.createElement("li");
//给元素添加属性值和文本
csli.id = "cs";
csli.innerText = "长沙";
//找到父元素city
var city = document.getElementById("city");
//在父元素city中增加子元素csli
city.appendChild(csli);
}
</script>
</head>
<body>
<ul id="city">
<li id="bj">北京</li>
<li id="sh">上海</li>
<li id="gz">广州</li>
<li id="sz">深圳</li>
</ul>
<button onclick="addCs()">增加一个</button>
</body>
</html>父元素.insertBefore(新元素,参照元素):在指定元素前添加新元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33<!-- 在指定的元素前添加元素"长沙" -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script>
function addCs() {
//新建元素li
var csli = document.createElement("li");
//给元素添加属性值和文本
csli.id = "cs";
csli.innerText = "长沙";
//找到父元素city
var city = document.getElementById("city");
//找到参照元素"深圳"
var sz = document.getElementById("sz");
//在父元素city中,在深圳前增加子元素csli
city.insertBefore(csli, sz);
}
</script>
</head>
<body>
<ul id="city">
<li id="bj">北京</li>
<li id="sh">上海</li>
<li id="gz">广州</li>
<li id="sz">深圳</li>
</ul>
<button onclick="addCs()">增加一个</button>
</body>
</html>父元素.replaceChild(新元素,被替换元素):用新元素替换某个子元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33<!-- 把原有元素"深圳"替换成新元素"长沙" -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script>
function replaceSz() {
//新建元素li
var csli = document.createElement("li");
//给元素添加属性值和文本
csli.id = "cs";
csli.innerText = "长沙";
//找到父元素city
var city = document.getElementById("city");
//找到参照元素"深圳"
var sz = document.getElementById("sz");
//在父元素city中,把深圳替换成新元素"长沙"
city.replaceChild(csli, sz);
}
</script>
</head>
<body>
<ul id="city">
<li id="bj">北京</li>
<li id="sh">上海</li>
<li id="gz">广州</li>
<li id="sz">深圳</li>
</ul>
<button onclick="replaceSz()">替换一个</button>
</body>
</html>
删除元素
- 元素.remove():哪一个元素调用remove()方法,此元素在Dom树中被删除
- 父元素.innerHTMl=””:即可清空父元素内所有子元素,但保留父元素
JS-DOM编程
http://blog.170827.xyz/2024/03/31/JS-DOM编程/