Dom获取元素 (获取元素 修改属性)

355 阅读2分钟

一.webApi基本认知

使用js去操作html和浏览器

分类:BOM(浏览器对象模型)和DOM(文档对象模型)

DOM:操作网页内容做交互效果的开发网页特效的

Dom树(文档树)作用:文档数直观的体现了标签和标签之间的关系

DOM对象:通过js拿过来就是用对象的形式来存储的(所有它提供的属性和方法都是用来访问和操作网页的)

二.获取DOM元素 -根据css选择器获取DOM元素(字符串记得加引号)

       1.document.querySelector('div')

只能得到一个元素。可以直接操作

 2.document.querySelectorAll('ul li')

选择匹配的多个元素 querySelectorAll不能直接修改,用遍历的方式一次给里面的元素修改 (想要得到里面的每一个对象,需要遍历(for)获得里面的DOM对象) 哪怕一个元素用 querySelectorAll得到的都是伪数组

三.修改DOM元素内容

-能够修改元素的文本更换内容

1.获取标签

      let div= document.querySelector('div')

2.修改标签(等号赋值)

     div.innerText = '帅哥'

元素.innerText=' '只识别标签 不能解析便签 元素.innerText=' '能够解析标签

-能够修改元素的属性

1.获取

 let div= document.querySelector('div')

2.修改元素常用属性src

pic.src='    链接   '
pic.title='   修改的内容'

-修改样式属性 --.通过style控制样式属性操作

    对象.style.样式属性=值

(有连接符自动改成小驼峰写法 赋值的时候不要忘记加单位 )

2.样式多

通过类名进行操作

 元素.ClassName='  类名'

等号是赋值(不想覆盖的是时候)

元素.ClassName='  以前的类名  现在想添加的类名'

追加一个类

 元素.ClassList.add('类名')

删除一个类

元素.ClassList.remove('类名')

切换一个类

元素.ClassList.toggle('类名')

修改元素的表单属性

(表单很多情况需要修改属性,比如点击眼睛可以看见密码 本质是把表单类型转换为文本框)

   表单.value='用户名'
   表单.type='password'

1.获取元素 2.取值或者设置值

控制禁用或者启用(ture or false)

 btn.disabled=false

勾选复选框

 checkbox.checked=false

随机点名小案例

   ```
   
          
          <!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>
<link rel="stylesheet" href="../css/reset.css">
<style>
    div {
        display: inline-block;
        border: 1px solid #333;
        width: 100px;
        height: 50px;
        line-height: 50px;
    }
</style>
     </head>

           <body>
抽中的选手
<div></div>
      </body>
        <script>
// 随机数
function getRandom(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min
}
// 声明一个数组
let arr = ['欧文', '库里', '克莱', '威少', '詹姆斯', '乔治', '伦纳德', '莫兰特', '利拉德', '浓眉哥']
    // 生成随机数作为数组的索引号
let random = getRandom(0, arr.length - 1)
    // 写入标签内部
    // document.write(arr[random])
document.getElementsByTagName('div')[0].innerHTML = arr[random]
    // div.innerHTML = arr[random]
    // 之后删除这个人的名字
    //  arr.splice从哪里开始删 删几个
arr.splice(random, 1)
    // console.log(arr)
    </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>api</title>
<style>
    div {
        width: 500px;
        margin: 100 auto;
        background-color: pink;
        border: 1px solid #333;
        height: 500px;
    }
    
    img {
        margin: 150px 100px;
        width: 200px;
        height: 100px;
    }
</style>
     </head>

      <body>

<img class="pic" src="../img/kyrie5.png" alt="">

<script>
    //    获取图片元素 
    let pic = document.querySelector('img')
        // 修改元素属性  

    // 随机得到图片序号
    // 完成src 属性赋值
    // 随机数
    function getRandom(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min
    }
    let num = getRandom(5, 10)
    pic.src = `../img/kyrie${num}.png`
</script>

  </body>

  </html>
 

 

三.定时器-间歇函数

作用:根据时间自动重复执行某些代码

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

 setInterval(函数,间隔时间)

作用每隔多少时间调用这个函数

另外一种写法

    function show(){
    方法
 }
 
let timer= setInterval(show,1000

返回非0的数值

关闭定时器(清除定时器)

  clearInterval(变量名)
  例如:
  clearInterval(timer)

阅读协议倒计时

 <!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>按钮60秒后才可以使用</title>
    </head>

    <body>
<textarea name="" id="" cols="30" rows="10">
    尊敬的客户,欢迎您注册成为本网站用户。在注册前请您仔细阅读如下服务条款:

    本服务协议双方为本网站与本网站客户,本服务协议具有合同效力。您确认本服务协议后,本服务协议即在您和本网站之间产生法律效力。请您务必在注册之前认真阅读全部服务协议内容,如有任何疑问,可向本网站咨询。 无论您事实上是否在注册之前认真阅读了本服务协议,只要您点击协议正本下方的"注册"按钮并按照本网站注册程序成功注册为用户,您的行为仍然表示您同意并签署了本服务协议。
    
    协议细则
    
    1、本网站服务条款的确认和接纳
    
    本网站各项服务的所有权和运作权归本网站拥有。
    
    2、用户必须:
    
    (1)自行配备上网的所需设备, 包括个人电脑、调制解调器或其他必备上网装置。
    
    (2)自行负担个人上网所支付的与此服务有关的电话费用、 网络费用。
    
    3、用户在本网站平台上不得发布下列违法信息:
    
    (1)反对宪法所确定的基本原则的;
    
    (2)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;
    
    (3)损害国家荣誉和利益的;
    
    (4)煽动民族仇恨、民族歧视,破坏民族团结的;
    
    (5)破坏国家宗教政策,宣扬邪教和封建迷信的;
    
    (6)散布谣言,扰乱社会秩序,破坏社会稳定的;
    
    (7)散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;
    
    (8)侮辱或者诽谤他人,侵害他人合法权益的;
    
    (9)含有法律、行政法规禁止的其他内容的。
    
   

</textarea>
<br>
<button class="btn" disabled>
    我已经阅读用户协议(6)
</button>
  </body>
     <script>
// 获取元素
let btn = document.querySelector('.btn')
    // 计算逻辑
    // 需要一个变量计数
let i = 6
    // 开启定时器,间歇函数
let timer = setInterval(function() {
    i--
    btn.innerHTML = `我已经阅读用户协议(${i})`
    if (i === 0) {
        // 清除定时器
        clearInterval(timer)
            // 开启按钮
        btn.disabled = false
        btn.innerHTML = '我同意该协议'
    }
}, 1000)
    </script>

   </html>