DOM

1. DOM简单学习

  • 功能:获取html文档内容

  • 代码:获取页面标签(元素)对象 Element

    • document.getElementById(id值)
  • 操作Element对象

    1. 修改属性值
      • 明确获取的对象是哪一个
      • 查看API文档,查找其中可以设置的属性
    2. 修改标签体内容
      • 属性:innerHTML
        1. 获取元素对象
        2. 使用innerHTML属性修改标签体内容
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <body>
    <img src="../img/off.gif" alt="开灯" id="light">
    <h1 id="on">关灯</h1>
    <script>
    var light = document.getElementById("light");
    alert("换图片");
    light.src = "../img/on.gif";
    var h1 = document.getElementById("on");
    h1.innerHTML="关灯";
    </script>
    </body>

2. DOM概念

  • Document Object Model文档对象模型

  • 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作。

  • W3C DOM 标准被分为 3 个不同的部分:

    • 核心 DOM - 针对任何结构化文档的标准模型

      • Document:文档对象

      • Element:元素对象

      • Attribute:属性对象

      • Text:文本对象

      • Comment:注释对象

      • Node:节点对象,其他5个的父对象

    • XML DOM - 针对 XML 文档的标准模型

    • HTML DOM - 针对 HTML 文档的标准模型

3.Document对象

  1. 创建:在html dom模型中可以使用window对象获取
  2. 方法
    • 获取Element对象
      • getElementById(): 根据id属性值获取元素对象。id属性值一般唯一
      • getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
      • getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
      • getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
    • 创建其他DOM对象:
      • createAttribute(name)
      • createComment()
      • createElement()
      • createTextNode()

4.Element

  1. 获取/创建:通过document来获取和创建

  2. 方法:

    • removeAttribute():删除属性

    • setAttribute():设置属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<a>链接</a>
<input type="button"id="btn_set"value="设置属性">
<input type="button"id="btn_del"value="删除属性">
<script>
var btn = document.getElementById("btn_set");
var tagName_a = document.getElementsByTagName("a")[0];
btn.onclick = function () {
tagName_a.setAttribute("href","https://www.baidu.com");
}
var btndel = document.getElementById("btn_del");
btndel.onclick = function () {
tagName_a.removeAttribute("href");
}
</script>

5.Node

  1. 特点:所有dom对象都可以被认为是一个节点

  2. 方法:

    CRUD dom树:

    • appendChild():向节点的子节点列表的结尾添加新的子节点。
    • removeChild() :删除(并返回)当前节点的指定子节点。
    • replaceChild():用新节点替换一个子节点。
  3. 属性

    parentNode:返回当前节点的父节点

6.HTML DOM

  1. 标签体的设置和获取:innerHTML
  2. 使用html元素对象的饿属性
  3. 控制样式
    • 使用元素的style属性来设置
    • 提前定义类选择器的样式,通过元素的className属性来设置其class属性值
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
34
35
36
37
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HTMLDOM</title>
<style>
.d1{
border: 1px solid blue;
}
</style>
</head>
<body>
<div id="div">
div
</div>
<div id="div1">
div
</div>
<script>
var div = document.getElementById("div");
div.onclick = function () {
div.style.border = "1px red solid";
//font-size---->fontSize
div.style.fontSize="50px";
}
var div1 = document.getElementById("div1");
div1.onclick = function () {
div1.className="d1";
}
var innerHTML = div.innerHTML;
//div中替换一个文本输入框
//div.innerHTML = "<input type='text'>";
//在div中追加一个文本输入框
div.innerHTML += "<input type='text'>";
</script>
</body>
</html>