JS DOM树 (一)

DOM是DocumentObjectModel的缩写,它是JavaScript操作网页的标准接口。DOM将HTML或XML文档解析为节点层级结构,允许程序对网页进行增删改查。节点包括文档节点、元素节点、属性节点、文本节点等多种类型,通过节点的层级关系和各种接口,如parentNode、childNodes等,可以方便地访问和修改网页内容。
摘要由CSDN通过智能技术生成

何为DOM?————DOM是JS操作网页的接口,全程Document object model ——作用:将网页元素转为一个js对象,从而实现网页元素的增删改查等等。

1.节点层级

任何 HTML 或 XML 文档都可以用 DOM 表示为一个由节点构成的层级结构。节点分很多类型,每种类型对应着文档中不同的信息和(或)标记,也都有自己不同的特性、数据和方法,而且与其他类型有某种关系。这些关系构成了层级,让标记可以表示为一个以特定节点为根的树形结构。

其中,document 节点表示每个文档的根节点。在这里,根节点的唯一子节点是<html>元素,我们称之为文档元素(documentElement)。文档元素是文档最外层的元素,所有其他元素都存在于这个元素之内。每个文档只能有一个文档元素。在 HTML 页面中,文档元素始终是<html>元素。在 XML 文档中,则没有这样预定义的元素,任何元素都可能成为文档元素。HTML 中的每段标记都可以表示为这个树形结构中的一个节点。元素节点表示 HTML 元素,属性节点表示属性,文档类型节点表示文档类型,注释节点表示注释。DOM 中总共有 12 种节点类型,这些类型都继承一种基本类型。

2.节点

节点的类型一共有七种:

     ·  常用节点

                        1. 文档节点document

                        2.元素节点element

                        3. 属性节点attribute

                        4.文本节点text

                        

  • 其他节点
    DocumentType

    doctype标签(比如<!DOCTYPE html>)。

    Comment

    注释

    DocumentFragment

    文档的片段

这七种节点都属于浏览器原生提供的节点对象(下面要讲的Node对象)的派生对象,具有一些共同的属性和方法。

节点树——————

最顶层是document节点,下面一层是html唯一子节点,也就是根节点(root node)

下面的分别为 

                : 父节点关系(parentNode)

                :子节点关系(childNode)

                :同级别节点关系(sibling)——兄弟节点,拥有同一个父节点

DOM提供操作接口,用来获取三种关系的节点。其中,子节点接口包括firstChild(第一个子节点)和lastChild(最后一个子节点)等属性,同级节点接口包括nextSibling(紧邻在后的那个同级节点)和previousSibling(紧邻在前的那个同级节点)属性。

                1. firstChild

                2. lastChild

                3. nextSibling

                4. previousSibling

Node 类型

                : 

        属性:

                1. nodeType

 

 <script>
        window.onload = function () {

            console.log(document.body.firstChild.nodeType)
        }
    </script>

————输出结果为3

                2. nodeName————以纯大写的方式,返回元素的标签名,如DIV,P,BUTTON

                        

 var two = document.getElementById('biaoqian')
            console.log(two)
            console.log(two.nodeName)

                        先,获取该元素,将元素赋值给一个变量,变量.nodeName————输出DIV

 

                3. nodeValue————输出div子节点文本值,即

 var three = document.getElementById('anniu')

            console.log(three.firstChild.nodeValue)

               先,获取该元素,将元素赋值给一个变量,变量.firstChild.nodeValue

                4. textContent————输出包含本元素在内的所有子元素的文本值

 var three = document.getElementById('anniu')




            console.log(one.textContent)

                ——————

                5. nextSibling————返回紧挨该元素的‘下一个’兄弟元素

 var three = document.getElementById('anniu')




            console.log(one.textContent)
            console.log(one.nextSibling)

                6. previousSibling————返回紧挨该元素的‘上一关’兄弟元素

 var three = document.getElementById('anniu')




            console.log(one.textContent)
            console.log(one.previousSibling)

                        

                7. parentNode————返回该节点的父节点。

 var four = document.getElementById('lianjie')
            console.log(four.parentNode)

                8. childNodes————返回该节点的所有子节点

console.log(document.body.childNodes)

                ————其中,过滤出所有元素节点的方法:

 var res = [...document.body.childNodes].filter(function (a) {
                return a.nodeType == 1
            })
            console.log(res)

                

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值