初识WEB api 和 倒计时

DOM(文档对象模型)
DOM 文档对象模型,是呈现以及任意HTML和XML文档交互的API DOM是一个对象,用来操作网页 例如改变网页内容,样式等
获取第一个文档对象的语法:document.querySelector
获取所有的文档对象的语法:
document.querySelectorAll(`获取所有的li`) //获取所有的元素
使用id选择器获取一个文档:
document.getElementById(`id选择器的名字`) //id选择器的名字
    console.log(document)  //最大的对象
    console.dir(document)  //最大的对象
    console.log(document.hidden)
    console.log(document[`title`])
    // document.querySelector(`快速获得第一个元素`)
    const  div = document.querySelector(`.txt`)
    console.log(div)  //会把div和123都获取过来
    // document.querySelectorAll(`获取所有的li`) //获取所有的元素
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box {
            width: 100px;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>
<body>
<div class="div">abc</div>
<div class="div">123</div>
<p id="nav">456</p>
<ul>
    <li>测试1</li>
    <li>测试2</li>
    <li>测试3</li>
</ul>
<center>
    const a = document.querySelector(`div`) //多个相同的只能获取第一个 <br>
    const c = document.querySelectorAll(`li`) //获取所有的li,但是他是一个伪数组 有序的储存 有索引,有length属性,没有真实数组的方法 pop <br>
    document.getElementById(`id选择器的名字`) //id选择器的名字 <br>
    document.getElementsByName(``)//根据标签名获取多个元素对象 <br>
    document.getElementsByClassName(``)//根据类型获取多个元素对象 <br>
</center>
<script>
    const a = document.querySelector(`div`) //只能获取第一个
    console.log(a)
    a.style.color = `red`
    const b = document.querySelector(`#nav`)
    console.log(b)
    const c2 = document.querySelector(`ul li:nth-child(2)`)
    console.log(c2)
    const c = document.querySelectorAll(`li`) //获取所有的li,但是他是一个伪数组 有序的储存 有索引,有length属性,没有真实数组的方法 pop
    console.log(c)
    // c.push(1)
    // console.log(c)  //报错
    for (let i = 0; i < c.length; i++) {
        console.log(c[i])
        c[i].style.color = `pink` //修改的时候,需要对每一项修改,不可以一下全部修改
    }
    document.getElementById(`id选择器的名字`) //id选择器的名字
    document.getElementById(`nav`)
    document.getElementsByName(``)//根据标签名获取多个元素对象
    document.getElementsByClassName(``)//根据类型获取多个元素对象
</script>
</body>
</html>

操作元素文档属性

首先获取到对应的元素,然后对对应的元素进行修改

属性名称.修改语法

innerText 修改文字属性

innerHTML修改文字属性 / /我们使用innerHTML多一些,因为可以识别网页中的标签文档

    innerText 修改文字属性 <br>
    innerHTML 修改页面属性 <br>
<div class="box">我是文字内容</div>
<script>
    const a = document.querySelector(`.box`)
    console.log(a)
    console.dir(a)
    a.innerText = `我要去干饭`
    console.log(a)
    a.innerHTML = `<h1>我不去干饭了</h1>`
</script>

操作图片属性

获取图片的额元素属性语法:获取的元素属性名称.src

<img src="./img/老八1.jpeg" alt="">
<script>
    const  img = document.querySelector(`img`)
    // 修改图片src 重新给图片赋值
    img.src = `./img/老八10.jpeg`
    img.title = `老八蜜汁小憨包`
</script>

通过使用style操作元素样式的属性

使用style修改元素属性的语法是:属性名.style.需要修改的属性 = `需要修改的属性样式`

<div class="box">干饭了</div>
<script>
    "use strict"
    const box = document.querySelector(`.box`)
    console.log(box)
    // 使用styler属性进行样式修改
    // 多个单词采用驼峰命名法
    box.style.color = `#ffffff`
    box.style.backgroundColor = `pink`
    box.style.border = `1px solid #999`
</script>

修改元素的类名

覆盖元素当前类名的元素:className

元素名.className = `新的元素名` / / 这样使用的话,新的元素名会覆盖掉现在的元素名

元素名.className = `新的元素名 旧的元素名` / / 这样使用的话,新的元素名是添加在旧的元素名后边

对当前元素的类名进行深度修改:classList

增加一个新的类名:元素名称.classList.add(`需要添加的类名`)

删除一个存在的类名:元素名称.classList.remove(`需要删除的类名`)

切换一个类名:元素名称.classList.toogle(`需要切换的类名`) 这里的切换时,如果当前元素有这个类名就会删除,如果这个元素没有这个类名就会添加

<div class="nav sex">123</div>
<script>
const nav = document.querySelector(`.nav`)
console.log(nav)
//这里的className相当于class  //覆盖之前的类名,如果不想覆盖掉之前的类名需要把之前的类名也加上
nav.className = `box`
nav.className = `nav box`
// 使用classList修改元素属性
const div = document.querySelector(`.nav`)
console.log(div)
// 添加类名
div.classList.add(`div2`)
console.log(div)
// 删除类名
div.classList.remove(`div2`)
console.log(div)
// 切换类名 如没有就添加类名,如果有就删除掉类名
div.classList.toggle(`sex`)
// console.log(div)
</script>

操作表单元素的属性

操作text文档元素:value

<!--<input type="text" name="" id="" value="睡觉,干饭,打豆豆">-->
<script>
// const ipt = document.querySelector(`input`)
// console.log(ipt)
// 修改表单内的内容
// value
// ipt.value = `敲代码`
</script>

操作check多选状态的语法:check = true(默认选中)/false(默认不选中)

<!--<input type="checkbox">-->
   // 选中状态 checked 属性是否选中
    // const input = document.querySelector(`input`)
    // input.checked = true //选中
    // input.checked = false //不选中

操作button按钮的语法:disabled = ture(默认选中不可以点击)/false(未选中可以点击)

<button>点击</button>
<script>
    // button按钮
    const btn = document.querySelector(`button`)
    btn.innerHTML = `改变`
    // button按钮是否可点击,disabled
    btn.disabled = true  //不可以点击
    btn.disabled = false  //可以点击
</script>

自定义属性

自定义属性:自己定义一个类名属性,标签中添加一个属性类名data - 名称 = `属性`,获取我们自定义的属性 获取元素,元素名称.datdaset.名称,获取我们定义的属性

<center>
    当需求满足不了,然后会使用自定义属性 <br>
    data-开头,写一个自己定义的属性,可以让js识别 <br>
    获取方法 <br>
    首先获取元素,然后获取,获取语法dataset获取过来,获取一组对象集合 <br>
    获取的元素的名称.dataset;这里会以对象的方式打印出来 <br>
    获取的元素的名称.dataset.自己定义的属性名称 <br>
</center>
<div data-id="color">1</div>
<div class="box" data-color="color">2</div>
<div class="box1" data-height="高度">3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<script>
    const div = document.querySelector(`div`)
    console.log(div.dataset) //获取所有的自定义属性
    console.log(div.dataset.id) //获取自定义的id属性
    const box = document.querySelector(`.box`)
    // console.log(box)
    console.log(box.dataset)
    console.log(box.dataset.color)
    const box1 = document.querySelector(`.box1`)
    console.log(box1.dataset)
    console.log(box1.dataset.height)
</script>

重点计时器以及倒计时

开启计时器,计时器的作用,相隔相同的时间,执行函数事件

开启计时器有三种方法:

关闭计时器:clearInterval(定时器ID) 如果想关闭定时器,一定要给定时器加一个名字

    setInterval(function () { <br>
    代码体 <br>
    },时间间隔) <br>
    setInterval(fn,1000) 这里写函数名和时间间隔<br>
    function fn() { <br>
    console.log(`执行`) <br>
    } <br>
     setInterval(`fn()`,1000) //这样写每次打印的时候,会换行执行 如果加上小括号一定要用字符串给包裹起来 <br>
     function fn() { <br>
         console.log(`执行`) <br>
     } <br>
    关闭定时器 <br>
    clearInterval(定时器ID)
<script>
    // 代码结构
    // setInterval(function () {
    //     代码体
    // },时间间隔)

    // setInterval(function () {
    //     console.log(`每秒执行一次`)
    // },1000 )

    // setInterval(fn,1000)  //单行循环
    // function fn() {
    //     console.log(`执行`)
    // }

    // setInterval(`fn()`,1000) //这样写每次打印的时候,会换行执行
    // function fn() {
    //     console.log(`执行`)
    // }

    // let i = 0
    // let a = setInterval(function () {
    //     i++
    //     console.log(i)
    //     console.log(`每秒执行一次`)
    // },1000 )
    // clearInterval(a)

    let i = 6
    let a = setInterval(function () {
        i--
        if (i === 1) {
            clearInterval(a)
        }
        console.log(`1`)
    },1000)
</script>

 

posted @ 2022-11-16 14:07  帅气丶汪星人  阅读(65)  评论(0)    收藏  举报