IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript中Dom(第一天,最详细的笔记) -> 正文阅读

[JavaScript知识库]JavaScript中Dom(第一天,最详细的笔记)

JavaScript中Dom(第一天,最详细的笔记)

1. 什么是dom

Dom全称(Document Object Model)[文件对象模型],Dom是浏览器中提供的一套专门用来操作网页内容的功能,它的作用是,开发网页内容特效和实现用户交互

2. 什么是DOM树

Dom树:将HTML文档以树形结构直观的表现出来,我们称之为文档树或者DOM树,表示描述网页内容关系的名词,作用是文档树直观的体现了标题和标签之间的关系

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>标题</title>
</head>

<body>
    <div>
    	<span>你好</span>
    </div>
  <script></script>
</body>

</html>

下面是Dom树的流程图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SaiFpDQ9-1630147925440)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210828172507169.png)]

3. 什么是Dom节点

  • Dom节点:DOM树里每一个内容都称之为节点,

  • 节点类型分为:

    • 元素节点

      • 所有的标签,比如body,div
      • HTML是根节点
    • 属性节点

      • 所有的属性都是节点,比如href
    • 文字节点

      • 页面中的所有的文本

      其他

4. 什么是document

document:是DOM里提供的一个对象,所以它提供的属性和方法都是**用来访问和操作网页内容的**,例如:document.write(),代表的是,浏览器显示网页内容的区域,网页中所有的内容都在document里面,document是学习DOM的核心

5. 如何查找元素节点的方式有哪些?

  • 根据id来查找Dom元素节点

    语法:

    document.getElementByIds('标签的id名')
    
    • 根据id查找标签,
    • 然后传入的id是字符串,记得加引号,直接写id名即可,不要加 #
    • 返回的是一个匹配到ID的Dom ELement对象(所有节点都是对象),
    • 找不到的话就是null
    • 可以通过对象里面的nodeType属性来标识节点的类型

    如下代码:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
        #box {
          width: 300px;
          height: 300px;
          margin: 0 auto;
        }
    
      </style>
    </head>
    
    <body>
      <div id="box"></div>
      <script>
        let box = document.getElementById('box')
        box.style.background = 'red'
      </script>
    </body>
    </html>
    

    效果图-1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QAgXAa6K-1630147925446)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210828174920122.png)]

  • 根据Html和body元素节点获取

    • 语法:

      document.documentELement
      

      查找html元素

      document.html
      

      查找Body元素节点

      document.body
      

      实例如下:

      <!DOCTYPE html>
      <html lang="en">
      
      <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
          #box {
            width: 300px;
            height: 300px;
            margin: 0 auto;
          }
      
        </style>
      </head>
      
      <body>
        <div id="box"></div>
        <script>
          let html = document.html
          let body = document.body
          body.style.background = 'red'
      
        </script>
      </body>
      
      </html>
      
      
  • 根据类获取DOM元素节点

6. 操作元素节点

  1. 直接修改元素的属性

    • 语法

      //对象.属性=值
      
      //================比如下面这个=================
      //获取imh对应的Dom元素
      let pic = document.getElementById('pic')
      //修改属性
      pic.src='./images/lion.png'
      pic.width=400
      pic.alt='图片不见了'
      
  2. 通过 setAttribute 方法修改

    • 语法

      对象.setAttribute('属性','值')
      //================比如下面这个=================
      //获取imh对应的Dom元素
      let pic = document.getElementById('pic')
      //修改属性
      pic.setAttribute('src','./images/lion.png')
      pic.setAttribute('width','540')
      pic.setAttribute('alt','图片没有了')
      
    • 注意:

      1. 属性和值都需要加引号
      2. 目前两种方式没有区别
      3. 更推荐使用**对象.属性**的方式
  3. 修改元素的样式

    • 语法:

      对象.style.样式属性 =//================比如下面这个=================
      let box =doucment.getElementById('box')
      box.style.color="red"
      box.style.width="300px"
      //CSS属性的 -链接符与JavaScript的减法运算符
      //冲突,所以要改成驼峰法
      box.style.backgrounColor='pink'
      
    • 注意:

      • 修改演示通过style属性引出
      • 如果属性有- 链接符,需要转换为小驼峰命名法
      • 赋值的时候,需要的时候不要忘记加css的单位

7. 操作元素文本

document.write:只能将文本内容追加到 前面的位置,文本中包含的标签会被解析

//永远都只是追加操作,且只能将内容设置到</body>前面
document.write('hello World')
doucment.write('<h1>你好世界</h1>')

innerText 属性: 将文本内容添加/更新到任意标签位置,文本中包含的标签不会被解析

let info= document.getElementById('info')
info.innerText='<h3>你好,我是小白</h3>'

案例-1------页面随机变化背景

<!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>
        let n = Math.floor(Math.random() * (10 - 1 + 1) + 1)

        document.body.style.background = `url(./images/desktop_${n}.jpg)`
    </script>
</body>

</html>

效果图-2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UwwqEBYg-1630147925448)(F:\练习\手册\笔记\JavaScript\img\案例图0.gif)]

时间对象

  1. 时间对象:用来表示时间的对象,可以得到系统时间
  2. 实例化,在代码中发现new关键字时,一般这个操作被称为**实例化**

语法:

//获取当前时间
let date=new Date()
// ==================获取指定的时间===============
let date= new Date('2001-10-01')

时间对象的方法

因为时间对象返回的数据我们不能直接使用,所以需要转换为实际开发中常用的格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1cvhpBuU-1630147925451)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210828183952507.png)]

案例-02---------页面显示时间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QDkSRwwg-1630147925456)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210828184047824.png)]

<!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>毕业时间倒计时</title>
    <style>
        div {
            height: 100px;
            line-height: 100px;
            font-size: 72px;
            color: red;
            background: yellow;
            text-align: center;
            font-weight: bold;
        }
    </style>
</head>

<body>
    <div id="box">毕业时间倒计时</div>
    <script>
        function time() {
            // 当前时间戳
            let d1 = new Date();
            let n1 = d1.getTime()
            // 毕业时间戳
            let d2 = new Date('2021-10-8')
            let n2 = d2.getTime()
            // 计算时间戳差值
            let val = n2 - n1
            // 转换时分秒
            let day = parseInt(val / 1000 / 60 / 60 / 24)
            let hours = parseInt(val / 1000 / 60 / 60 % 24)
            let minutes = parseInt(val / 1000 / 60 % 60)
            let seconds = parseInt(val / 1000 % 60)

            // 获取元素
            let box = document.getElementById('box')
            box.innerText = `距离毕业:${day}${hours}小时${minutes}分钟${seconds}`
        }
        time()
        setInterval(time, 1000)
    </script>
</body>

</html>

时间戳

  • 什么是时间戳

    • ? 是指1970年01月01日00时00分00秒起至现在的毫秒数,它是一种特殊的计量时间的方式
  • 三种方式获取时间戳

    • 使用 getTime() 方法

      //实例化
      let data = new Date()
      // 2.获取时间戳
      console.log(data.getTime())
      
    • 简写 +new Date()

      console.log(+new Date())
      
    • 使用 Date().now()

      console.log(Date.now())
      
    • 注意

      • 但是只能得到当前的时间戳, 而前面两种可以返回指定时间的时间戳

案例03-毕业倒计时

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ANuqn3qE-1630147925457)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210828184939571.png)]

<!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>毕业时间倒计时</title>
    <style>
        div {
            height: 100px;
            line-height: 100px;
            font-size: 72px;
            color: red;
            background: yellow;
            text-align: center;
            font-weight: bold;
        }
    </style>
</head>

<body>
    <div id="box">毕业时间倒计时</div>
    <script>
        function time() {
            // 当前时间戳
            let d1 = new Date();
            let n1 = d1.getTime()
            // 毕业时间戳
            let d2 = new Date('2021-10-8')
            let n2 = d2.getTime()
            // 计算时间戳差值
            let val = n2 - n1
            // 转换时分秒
            let day = parseInt(val / 1000 / 60 / 60 / 24)
            let hours = parseInt(val / 1000 / 60 / 60 % 24)
            let minutes = parseInt(val / 1000 / 60 % 60)
            let seconds = parseInt(val / 1000 % 60)

            // 获取元素
            let box = document.getElementById('box')
            box.innerText = `距离毕业:${day}${hours}小时${minutes}分钟${seconds}`
        }
        time()
        setInterval(time, 1000)
    </script>
</body>

</html>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 08:59:40  更:2021-08-29 09:01:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:58:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码