dom(基础)

DOM

DOM 简介

  • 文档对象模型(Doacument Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML 或者XML)的标准编程接口
  • W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式。
  • DOM树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UdyiwUvp-1669188701589)(F:\大前端\笔记\js\API\img\dom树.png)]

  • 文档:一个页面就是一个文档,DOM 中使用 document 表示
  • 元素:页面中的所有标签都是元素,DOM 中使用 element 表示
  • 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM 中使用 node 表示
  • DOM 把以上内容都看做是对象

获取元素

如何获取页面元素
  • 通过 js 代码来获取页面中的标签
  • 获取到以后就可以操作这些标签了
  • 获取页面中的元素可以使用以下几种方式:
    • 根据 ID 获取
    • 根据标签名获取
    • 通过 HTML5 新增的方法获取
    • 特殊元素获取
根据 ID 获取元素
getElementById()
  • 使用 getElementById() 方法可以获取带有 ID 的元素对象。

  • 返回一个匹配到 ID 的 DOM Element 对象。若在当下Document没有找到,则返回 null。

  • 语法:

     var 变量= document.getElementById('id名')
     //前边的  变量  是用于存放接收获取过来的元素的
    
  • 使用 console.dir() 可以打印我们获取的元素对象,更好的查看对象里面的属性和方法。

  • 例如

    <body>
        <div id="time">2022-11-18</div>
        <script>
            // 1. 因为文档页面从上往下加载,所以先得有标签 所以我们script写到标签的下面
            // 2. get 获得 element 元素 by 通过 驼峰命名法 
            // 3. 参数 id是大小写敏感的字符串.  
    
            // 4. 返回的是一个元素对象
            var timer = document.getElementById('time')
    //获取到的就是页面中的那个 id 为 time 的 div 标签
            console.log(timer)
            console.log(typeof timer)
            // 5. console.dir 打印返回的元素对象 更好的查看里面的属性和方法
            console.dir(timer)
        </script>
    </body>
    
根据标签名获取
getElementsByTagName()
  • 使用 getElementsByTagName() 方法可以返回带有指定标签名的对象的集合。

  • 因为页面中可能有多个元素的 标签 名称一样,所以获取到的是一组元素

  • 哪怕真的只有一个这个标签名,那么也是获取一组元素,只不过这一组中只有一个 DOM 元素而已

  • 语法:

     var 变量= document.getElementsByTagName('标签名')
    
  • 例如

    //1.返回的是 获取过来元素对象的集合 以伪数组的形式存储的
    var lis = document.getElementsByTagName('li')
    //2.因此想要一次打印里边的元素可以采取遍历的方式
    
    
     // 3. 如果页面中只有一个li 返回的还是伪数组的形式 
            // 4. 如果页面中没有这个元素 返回的是空的伪数组的形式[]
            // 5. element.getElementsByTagName('标签名') 父元素必须是指定的单个元素
            // var ols = document.getElementsByTagName('ol')  // [ol]
            // console.log(ols[0].getElementsByTagName('li'))
            var ols = document.getElementById('ol')
            console.log(ols.getElementsByTagName('li'))
    
    • 获取到的是一组元素,是一个长得和数组一样的数据结构,但是不是数组,是 伪数组
    • 那么,这个一组数据也是按照索引排列的,所以我们想要准确的拿到这个 div,需要用索引来获取。
  • 注意:

    • 因为得到的是一个对象的集合(包含元素对象的数组),所以我们想要操作里面的元素就需要遍历。
    • 得到元素对象是动态
通过 HTML5 新增的方法获取
getElementsByClassName
  • 通过类名返回获取元素document.getElementsByClassName(‘类名’)

  • 因为页面中可能有多个元素的 class 名称一样,所以获取到的是一组元素

  • 哪怕获取的 class 只有一个,那也是获取一组元素,只不过这一组中只有一个 DOM 元素而已

  • 语法

    var 变量 = document.getElementsByClassName(‘类名’)
    // 根据类名返回元素对象集合
    
  • 获取到的是一组元素,是一个长得和数组一样的数据结构,但是不是数组,是 伪数组

  • 那么,这个一组数据也是按照索引排列的,所以我们想要准确的拿到这个 div,需要用索引来获取。

  • 例如

    <div class="box">盒子1</div>
        <div class="box">盒子2</div>
        <div id="nav">
            <ul>
                <li>首页</li>
                <li>产品</li>
            </ul>
        </div>
        <script>
            // getElementsByClassName 根据类名获得某些元素集合
            var boxs = document.getElementsByClassName('box')
        </script>
    
querySelector
  • 通过指定选择器返回第一个元素对象document.querySelector('选择器')

  • 里面的选择器需要加符号 .box #nav

    var 变量 =  document.querySelector('选择器')
    // 根据指定选择器返回第一个元素对象
    //选择器如标签、类名、id
    
  • 例如

    <div class="box">盒子1</div>
        <div class="box">盒子2</div>
        <div id="nav">
            <ul>
                <li>首页</li>
                <li>产品</li>
            </ul>
        </div>
        <script>
           //querySelector 返回指定选择器的第一个元素对象 
           
            var firstBox = document.querySelector('.box')//前面变量接收的是.box的第一个对象元素
            var nav = document.querySelector('#nav')
            var li = document.querySelector('li')
         </script>
    
document.querySelectorAll
  • 返回指定选择器的所有元素对象集合document.querySelectorAll('选择器')

    var 变量 = document.querySelectorAll('选择器')
    
  • 例如

    <div class="box">盒子1</div>
        <div class="box">盒子2</div>
        <div id="nav">
            <ul>
                <li>首页</li>
                <li>产品</li>
            </ul>
        </div>
        <script>
           // querySelectorAll()返回指定选择器的所有元素对象集合
            var allBox = document.querySelectorAll('.box')
            var lis = document.querySelectorAll('li')
         </script>
    
获取特殊元素(body,html)
获取body 元素
var bodyEle(变量) = document.body
获取html 元素
var htmlEle(变量) = document.documentElement
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值