DOM 基础语法

文章目录

DOM基础语法

1、 简介

文档对象模型(DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML、XML)的标准编程接口

W3C 已经定义了一系列 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式

1.1 DOM树

https://images.cnblogs.com/cnblogs_com/blogs/722174/galleries/2074790/o_220130105305_R-C.png

文档:一个页面就是一个文档,DOM 中使用 document 表示

元素:页面中的所有标签都是元素,DOM 中使用 element 表示

节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM 中使用 node 表示

DOM把以上内容都看做是对象

2、 获取元素

获取页面中的元素可以使用一下几种方式

  • 根据 id 获取
  • 根据标签名获取
  • 通过 HTML5 新增的方法获取
  • 特殊元素获取
2.1 根据 id 获取

使用 getElementById("id")方法可以获取带有 id 的元素对象

<!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>Document</title>
</head>

<body>
    <div id="time"> 2022-2-1</div>
    <script>
        var time = document.getElementById("time");  // 大小写敏感
        console.log(typeof time);
        console.dir(time);
        console.log(time);  // console.dir() 打印我们返回的元素对象,更好的查看里面的属性和方法
    </script>
</body>

</html>
  1. 因为我们的文档页面从上往下加载,所以先得有标签,故我们 script 写到标签的下面
  2. get 获得 element 元素 by 通过 驼峰命名法
  3. 参数 id 是大小写敏感的字符串
  4. 返回的是一个元素对象
2.2 根据标签名获取

使用getElementsByTagName("标签名")方法可以返回带有指定标签名的对象集合

<!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>Document</title>
</head>

<body>
    <ul>
        <li>123 a</li>
        <li>123 b</li>
        <li>123 c</li>
        <li>123 d</li>
        <li>123 e</li>
    </ul>
    <script>
       var lis = document.getElementsByTagName("li");
       console.log(lis);
       console.log(lis[0]);
       for (var i = 0; i < lis.length(); i++){
     
           console.log(lis[i])
       }
    </script>
</body>

</html>
  1. 返回的是获取过来元素对象的集合,以伪数组的形式存储,遍历获取数据
  2. 得到的元素是动态的
  3. 如果页面中没有这个元素,放回的伪数组是一个空数组
2.3 根据标签名获取

使用element.getElementByTagName("标签名")获取某个元素(父元素)内部所有指定标签名的子元素

<!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>Document</title>
</head>

<body>
    <ul>
        <li>123 a</li>
        <li>123 b</li>
        <li>123 c</li>
        <li>123 d</li>
        <li>123 e</li>
    </ul>
    <ol id="first">
        <li>23 a</li>
        <li>23 b</li>
        <li>23 c</li>
        <li>23 d</li>
        <li>23 e</li>
    </ol>
    <script>
       var ol1 = document.getElementById("first");  // var ol1 = document.getElementsByTagName("ol")[0]  效果一样
       var lis = ol1.getElementsByTagName("li");  // 一定要指明那个父元素
       console.log(lis);
       console.log(lis[0]);
    </script>
</body>

</html>

父元素必须是单个对象(必须指明是哪个元素对象)获取的时候不包括父元素自己

2.4 根据 类名来获取

使用document.getElementsByClassName("类名")来获取元素对象集合

<!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>Document</title>
</head>

<body>
    <div class="box">盒子1</div>
    <div class="box">盒子2</div>
    <script>
        var boxs = document.getElementsByClassName("box");
        console.log(boxs);
    </script>
</body>

</html>
2.5 通过指定选择器获取

使用document.querySelector("选择器")指定选择器,获取第一个元素对象

<!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>Document</title>
</head>

<body>
    <div class="box">盒子1</div>
    <div class="box">盒子2</div>
    <div id="f1">盒子3</div>
    <script>
        var box = document.querySelector("div");
        console.log(box);
        var id = document.querySelector("#f1");  // 使用id选择
        // 如果使用类选择器,则 (".box")
        console.log(id);
    </script>
</body>

</html>

使用document.querySelectorAll("选择器")指定选择器,获取所有的元素

<!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>Document</title>
</head>

<body>
    <div class="box">盒子1</div>
    <div class="box">盒子2</div>
    <div id="f1">盒子3</div>
    <script>
        var boxs = document.querySelectorAll(".box");
        console.log(boxs);
	</script>
</body>

</html>
2.6 获取 body 和 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>Document</title>
</head>

<body>
    <script>
        // body
        var bodyEle = document.body;
        console.log(bodyEle);
        console.dir(bodyEle);
        // html
        var htmlEle = document.documentElement;
        console.log(htmlEle);
    </script>
</body>

</html>

3、 事件基础

3.1 概述

JS 使我们有能力创建动态页面,而事件是可以被 JS 侦测到的行为

简单理解:触发 — 响应机制

<!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>Document</title>
</head>

<body>
    <button id="btn">hello</button>
    <script>
        btn.onclick = function() {
     
            alert("hello world"
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SteveKenny

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值