API-获取DOM元素

学习目标:

  • 掌握获取DOM元素

学习内容:

  1. 获取DOM对象
  2. 根据CSS选择器来获取DOM元素(重点)
  3. 其他获取DOM元素方法(了解)

获取DOM对象:

  • 我们想要操作某个标签首先做什么?
    肯定首先选中这个标签,跟CSS选择器类似,选中标签才能操作。

  • 查找元素DOM元素就是利用JS选择页面中标签元素


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

  • 选择匹配的第一个元素
document.querySelector('CSS选择器')

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

返回值:CSS选择器匹配的第一个元素,一个HTMLElement对象。
如果没有匹配到,则返回null。

<title>获取dom元素</title>
  <style>
    .box {
      width: 200px;
      height: 200px;
    }
  </style>
</head>

<body>
  <div class="box">123</div>
  <div class="box">abc</div>
  <p id="nav">导航栏</p>
  <ul class="nav">
    <li>测试1</li>
    <li>测试2</li>
    <li>测试3</li>
  </ul>
<script>
    //1.获取匹配的第一个元素
     //const box = document.querySelector('div')

    // const box = document.querySelector('.box')
    // console.log(box)

    // const nav = document.querySelector('#nav')
    // console.log(nav)
    // nav.style.color = 'red'

   //我要获取第一个小li
    const li = document.querySelector('ul li:first-child')
    console.log(li)
  </script>
  </body>
  • 选择匹配的多个元素
document.querySelectorAll('CSS选择器')

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

返回值:CSS选择器匹配的NodeList 对象集合

<title>获取dom元素</title>
  <style>
    .box {
      width: 200px;
      height: 200px;
    }
  </style>
</head>

<body>
  <div class="box">123</div>
  <div class="box">abc</div>
  <p id="nav">导航栏</p>
  <ul class="nav">
    <li>测试1</li>
    <li>测试2</li>
    <li>测试3</li>
  </ul>
  <script>
    //2.选择所有的小li
     const lis = document.querySelectorAll('ul li')
     console.log(lis)
  </script>
</body>
  • 小结
  1. 获取一个DOM元素我们使用谁?能直接操作修改吗?
    querySelectorAll()
    可以
  2. 获取多个DOM元素我们使用谁?能直接修改吗?如果不能可以怎么做到修改?
    querySelectorAll()
    不可以,只能通过遍历的方式一次给里面的元素做修改。
  3. 他们两者小括号里面的参数有什么注意事项?
    里面写CSS选择器
    必须是字符串,也就是必须加引号
  <title>获取dom元素</title>
  <style>
    .box {
      width: 200px;
      height: 200px;
    }
  </style>
</head>

<body>
  <ul class="nav">
    <li>测试1</li>
    <li>测试2</li>
    <li>测试3</li>
  </ul>
  <script>
    //1.获取元素
    const lis = document.querySelectorAll('.nav li')
    // console.log(lis)
    for (let i = 0; i < lis.length; i++) {
      console.log(lis[i]) //每一个小li对象
    }

  </script>

</body>

</html>

得到的是一个伪数组

  1. 有长度有索引号的数组。
  2. 但是没有pop() push()等数组方法

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

注意:哪怕只有一个元素,通过querySelectorAll()获取过来的也是一个伪数组,里面只有一个元素而已。

  • 练习
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>练习-请控制台依次输出3个li的DOM对象</title>
</head>

<body>
  <ul class="nav">
    <li>我的首页</li>
    <li>产品介绍</li>
    <li>联系方式</li>
  </ul>
  <script>
    const lis = document.querySelectorAll('ul li')
    console.log(lis)
  </script>

</body>

</html>

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

    //1.根据id获取一个元素
    document.getElementById('nav')

    //2.根据标签获取一类元素  获取页面 所有div
    document.getElementsByTagName('div')

    //3.根据类名获取元素  获取页面 所有类名为 w的
    document.getElementsByClassName('w')
  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值