Java Web学习笔记15——DOM对象

发布于:2024-06-07 ⋅ 阅读:(121) ⋅ 点赞:(0)

DOM:

概念:Document Object Model: 文档对象模型

将标记语言的各个组成部分封装为对应的对象:

Document:  整个文档对象

Element:元素对象

Attribute: 属性对象

Text:文本对象

Comment:注释对象

JavaScript通过DOM,就能够对HTML进行操作:

1)改变HTML元素的内容;

2)改变HTML元素的样式;

3)对HTML DOM事件作出反应;

4)添加和删除HTML元素;

DOM是W3C的标准,定义了访问HTML和XML文档的标准,分为3个不同的部分。

Core DOM - 所有文档类型的标准模型。

Document:整个文档对象

Element:元素对象

Attribute:属性对象

Text:文本对象

Comment:注释对象

XML DOM - XML文档的标准类型

HTML DOM - HTML 文档的标准模型

将所有的标签都包装成对象。

image: <img>

Button: <input type="button">

HTML中Element对象可以通过Document对象获取,而Document对象是通过Window对象获取的。

Document对象中提供了以下获取Element元素对象的函数:

获取Element元素的四种方式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-DOM</title>
</head>

<body>
    <img id="h1" src="img/off.gif">  <br><br>

    <div class="cls">传智教育</div>   <br>
    <div class="cls">黑马程序员</div>  <br>

    <input type="checkbox" name="hobby"> 电影
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 游戏
</body>

<script>
    // 1. 获取Element元素
    // 1.1 获取元素- 根据ID获取 
    // var image = document.getElementById('h1');
    // alert(image);

    // 1.2 获取元素 - 根据标签获取
    // var divs = document.getElementsByTagName('div');
    // for(let i = 0; i < divs.length; i++) {
    //     alert(divs[i]);
    // }

    // 1.3 获取元素 - 根据name获取
    // var hobbys = document.getElementsByName('hobby');
    // for(let i = 0; i < hobbys.length; i++) {
    //     alert(hobbys[i]);
    // }

    // 1.4 获取元素 - 根据class属性获取
    var divs = document.getElementsByClassName('cls');
    for(let i = 0; i < divs.length; i++) {
        alert(divs[i]);
    }
    

</script>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-DOM</title>
</head>

<body>
    <img id="h1" src="img/off.gif">  <br><br>

    <div class="cls">传智教育</div>   <br>
    <div class="cls">黑马程序员</div>  <br>

    <input type="checkbox" name="hobby"> 电影
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 游戏
</body>

<script>
    // 1. 获取Element元素
    // 1.1 获取元素- 根据ID获取 
    // var image = document.getElementById('h1');
    // alert(image);

    // 1.2 获取元素 - 根据标签获取
    // var divs = document.getElementsByTagName('div');
    // for(let i = 0; i < divs.length; i++) {
    //     alert(divs[i]);
    // }

    // 1.3 获取元素 - 根据name获取
    // var hobbys = document.getElementsByName('hobby');
    // for(let i = 0; i < hobbys.length; i++) {
    //     alert(hobbys[i]);
    // }

    // 1.4 获取元素 - 根据class属性获取
    // var divs = document.getElementsByClassName('cls');
    // for(let i = 0; i < divs.length; i++) {
    //     alert(divs[i]);
    // }

    // 2. 查询参考手册,属性和方法
    var divs = document.getElementsByClassName('cls');
    var div1 = divs[0];

    div1.innerHTML = "传智教育666";

</script>
</html>

案例:

通过DOM操作,完成如下效果:

1、点亮灯泡;

2、将所有的div标签的标签体内容后面加上:very good;

3、使所有的复选框呈现选中的状态。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-DOM-案例</title>
</head>

<body>
    <img id="h1" src="img/off.gif">  <br><br>

    <div class="cls">传智教育</div>   <br>
    <div class="cls">黑马程序员</div>  <br>

    <input type="checkbox" name="hobby"> 电影
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 游戏
</body>

<script>
    //1. 点亮灯泡 src的属性值
    var image = document.getElementById('h1');
    image.src = "img/on.gif";


    //2. 将所有div标签的内容后面加上
    var divs = document.getElementsByTagName('div');
    for(let i = 0; i < divs.length; i++) {
        const div = divs[i];
        div.innerHTML += "<font color='red'>very good</font>"; 
    }

    //3. 使所有的复选框呈现选中状态
    var hobbys = document.getElementsByName('hobby');
    for(let i = 0; i < hobbys.length; i++) {
        const hobby = hobbys[i];
        hobby.checked = true;
    }
    

</script>
</html>

两步操作:

1)获取需要操作的元素对象;

2)查找参考手册,查看这些元素的属性和方法,来完成元素的控制。

属性和方法,就是对象思想。