DOM简介 修改元素内容属性 定时器

1.webAPI 基本认知

1.1.作用和分类

  • 作用:就是使用JS去操作html和浏览器
  • 分类: DOM (文档对象模型)、BOM (浏览器对象模型)

1.2.什么是DOM

  • DOM (Document 0bject Model——文档对象模型):是用来呈现以及与任意HTML或XML文档交互的API

  • 白话文: DOM是浏览器提供的一套专门用来操作网页内容的功能

  • DOM作用:

    • 开发网页内容特效和实现用户交互

1.3.DOM树

  • DOM树是什么
    • 将HTML文档以树状结构直观的表现出来,我们称之为文档树或DOM树
    • 描述网页内容关系的名词
    • 作用:文档树直观的体现了标签与标签之间的关系

在这里插入图片描述

1.4.DOM对象(重要)

  • DOM对象: 浏览器根据html标签生成的JS对象

    • 所有的标签属性都可以在这个对象上面找到

    • 修改这个对象的属性会自动映射到标签身上

  • DOM的核心思想

    • 把网页内容当做对象来处理
  • document 对象

    • 是DOM里提供的一个对象
    • 所以它提供的属性和方法都是用来访问和操作网页内容的
      • 例: document.write()
    • 网页所有内容都在document里面

2.获取DOM对象

2.1获取DOM元素

  • 根据CSS选择器来获取DOM元素(重点)

  • 其他获取DOM元素方法(了解)

2.1.1根据CSS选择器来获取DOM元素(重点)

2.1.1.1选择匹配的第一个元素

语法:

document.querySelector('css选择器')

参数:包含一个或多个有效的CSS选择器字符串

**返回值:**CSS选择器匹配的第一个元素 ,一个HTMLElement对象。

<body>
    <div>第一个盒子</div>
    <div>第二个盒子</div>
    <div class="three">第三个盒子</div>
	<ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
    <script>
        // js 获取第一个元素
        let div1 = document.querySelector('div')
        let div2 = document.querySelector('.three')
        let li = document.querySelector('ul li:last-child')
        console.log(li)
        console.log(div1)
        console.log(div2)
    </script>
</body>

在这里插入图片描述

2.1.1.2选择匹配的多个元素

语法:

document.querySelectorAll('css选择器')

参数:
包含一个或多个有效的CSS选择器字符串
返回值:
CSS选择器匹配的NodeList 对象集合

注意点:

得到的是一个伪数组:

  • 有长度有索引号的数组

  • 但是没有pop() push()等数组方法

  • 想要得到里面的每一个对象,则需要遍历(for) 的方式获得。

  • 哪怕只有一个元素,通过querySelectAll()获取过来的也是一个伪数组, 里面只有一个元素而已

<body>
	<ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
    <script>
        // js 获取多个元素
        let lis = document.querySelectorAll('ul li')
        console.log(lis)
    </script>
</body>

在这里插入图片描述

<body>
	<ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
    <script>
        let lis = document.querySelectorAll('ul li')
        for(let i = 0; i < lis.length; i ++ ){
            console.log(lis[i])
        }
    </script>
</body>

在这里插入图片描述

2.2.1其他获取DOM元素方法(了解)

//根据id获取一个元素
document.getElementById('nav')
//根据标签获取一类元素 获取页面 所有div
document.getElementsByTagName('div')
//根据类名获取元素获取页面所有类名为w的
document.getElementsByClassName('w')

3.设置/修改DOM元素内容

目标:能够修改元素的文本更换内容

3.1document.write()

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

3.2元素innerText属性

  • 将文本内容添加/更新到任意标签位置
  • 文本中包含的标签不会被解析
<body>
    <div>
        粉红色的回忆
    </div>
    <script>
        // 1.获取标签(元素)
        let box = document.querySelector('div')
        //2. 修改标签(元素)内容 box是对象 innerText 属性
        //对象.属性 = 值 不识别标签
        box.innerText = '有点意思~'   
    </script>
</body>

在这里插入图片描述
-------------------------->>>>>>>>>>在这里插入图片描述

3.3元素innerHTML属性

  • 将文本内容添加/更新到任意标签位置
  • 文本中包含的标签会被解析
<body>
    <div class="one">
        粉红色的回忆
    </div>
    <div class="two">
        粉红色的回忆
    </div>
    <script>
        let box1 = document.querySelector('.one')
        let box2 = document.querySelector('.two')
        box1.innerText = '<br><h3>前端程序员</h3>'
        box2.innerHTML = '<br><h3>前端程序员</h3>'
    </script>
</body>

在这里插入图片描述
-------------------------->>>>>>>>>>在这里插入图片描述

4.设置/修改DOM元素属性

4.1设置/修改元素常用属性

  • 还可以通过JS设置/修改标签元素属性,比如通过src更换图片

  • 最常见的属性比如: href、title、 src 等

  • 语法:

    对象.属性 =
<body>
    <img src="../../picture/webAPI_img/1.webp" alt="">
    <script>
        // 1.获取元素 图片
        let pic = document.querySelector('img')
        // 2. 修改元素属性 src    对象.属性= 值
        pic.src = '../../picture/webAPI_img/2.webp'
        pic.title = '我是你德哥'
    </script>
</body>

4.2设置/修改元素样式属性

还可以通过JS设置/修改标签元素的样式属性。

  • 比如通过轮播图小圆点自动更换颜色样式
  • 点击按钮可以滚动图片,这是移动的图片的位置left等等

学习路径:

4.2.1通过style属性操作CSS

语法:

对象.style.样式属性 =

注意:

  1. 修改样式通过style属性引出

  2. 如果属性有-连接符,需要转换为小驼峰命名法

  3. 赋值的时候,需要的时候不要忘记加css单位

let box = document.querySelector('.box') 
// 2.修改背景颜色
box.style.backgroundColor ='red'
box.style.width = '300px'
box.style.marginTop = '50px'

4.2.2操作类名(className) 操作CSS

如果修改的样式比较多,直接通过style属性修改比较繁琐,我们可以通过借助于Css类名的形式。
语法:

// active 是一个css类名
元素.className = 'active'

注意:
1.由于class是关键字,所以使用className去代替
2.className是使用新值旧值,如果需要添加一个类,需要保留之前的类名

<body>
    <div class="one"></div>
    <script>
        //1. 获取元素
        let box = document.querySelector('div')
        // 2. 设置样式
        box.className = 'one active'
    </script>
</body>

4.2.3通过classList操作类控制CSS

为了解决className容易覆盖以前的类名,我们可以通过classList方式追加和删除类名
语法:

// 追加一个类
元素.classList.add('类名')
//删除一个类
元素.classList.remove('类名') 
//切换一个类
元素. classList.toggle('类名')
<body>
    <div class="one"></div>
    <script>
        //1. 获取元素
        let box = document.querySelector('div')
        // add 是个方法 添加 追加
        box.classList.add('active')
        //remove 移除 类
        box.classList.remove('one')
        //切换类 如果没有 则添加这个类 否则删除这个类
        box.classList.toggle('one')
    </script>
</body>

4.3 设置/修改表单元素属性

表单很多情况,也需要修改属性,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框
正常的有属性有取值的跟其他的标签属性没有任何区别

  • 获取: DOM对象.属性名
  • 设置: DOM对象.属性名 = 新值

在这里插入图片描述

5.定时器-间歇函数

在这里插入图片描述

目标:能够使用定时器函数重复执行代码

定时器函数可以开启和关闭定时器

5.1.开启定时器

setInterval(函数,间隔时间)

作用:每隔一段时间调用这个函数
间隔时间单位:毫秒

注意点:

  1. 函数名字不需要加括号
  2. 定时器返回的是一个id数字,表示第几个定时器
<body>
    <script>
        // setInterval(function(){
        //     console.log('你好')
        // }, 1000)
        function show() {
            console.log('我的')
        }
		//每隔1000毫秒调用show函数
        setInterval(show, 1000)
    </script>
</body>

5.2.关闭定时器

 let 变量名 = setInterval(函数,间隔时间)
clearInterval(变量名)
<body>
    <script>
        // setInterval(function(){
        //     console.log('你好')
        // }, 1000)
        function show() {
            console.log('我的')
        }
        let timer = setInterval(show, 1000)
        //清除定时器
        clearInterval(timer)

    </script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值