【JavaScript】DOM节点操作

DOM

一个网页就是一个节点树,页面中的所有内容都是节点。

DOM=Document Object Model文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。

Document(文档):创建一个网页并将网页添加到Web中,DOM就会根据这个网页创建一个文档对象。如果没有Document,DOM也就无从谈起。

Object(对象):是一种独立的数据集合。如文档对象,就是文档中元素与内容的数据集合。与某个特定对象相关联的变量被称为这个对象的属性。可以通过某个特定对象去调用的函数被称为这个对象的方法。

Mdel(模型):代表将文档对象表示为树状模型。在这个树状模型中,网页中的各个元素与内容表现为一个相互连接的节点。

DOM是访问和操作Web页面的接口,使用该接口可以访问页面中的其他标准组件。

DOM分层

在这里插入图片描述

  • 根节点:在最顶层的节点,称为根节点
  • 父节点:一个节点之上的节点是该节点的父节点(parent)
  • 子节点:一个节点之下的节点是该节点的子节点(child)
  • 兄弟节点:如果多个节点在同一个层次,并拥有相同的父节点,这几个节点就是兄弟节点(sibling)
  • 后代节点:一个节点的子节点的结合可以称为是节点的后代(descendant)
  • 叶子节点:在树型结构最底部的节点
  • 元素节点:在html中,标签是这个文档的元素节点。元素节点组 成了文档模型的语义逻辑结构
  • 文本节点:包含在元素节点中的内容部分
  • 属性节点:元素节点的属性。一般情况下,大部分属性节点都是隐藏在浏览器背后,并且不可见的。属性节点总是被包含在元素节点当中

节点

节点基本属性:
nodeName:获得某个节点的名称
nodeType:获得某个节点的类型

  • nodeType==1 元素(element) 就是标签
  • nodeType==2 属性(attribute) 标签的属性
  • nodeType==3 文本(text) #text标签中的文本

nodeValue:返回节点的值

获取子节点、子元素的方式:

childNodes属性:返回当前节点的所有子节点的集合(NodeList),返回的节点包括元素、文本和其他节点
childen属性:只返回子元素节点的集合(HTMLCollection)

firstChild属性:获取第一个子节点(元素节点或文本节点)
firstElementChild属性:返回第一个子元素

lastChild属性:返回最后一个子节点(元素节点或文本节点)
lastElementChild属性:返回最后一个子元素

对象名.childen[索引号]:访问节点的子元素,不需要考虑浏览器的兼容性问题,推荐使用

获取兄弟节点、兄弟元素的方式:

nextSibling属性:返回当前节点的后一个兄弟节点
previousSibling属性:返回当前节点的前一个兄弟节点

nextElementSibling属性:返回下一个兄弟元素
previousElementSibling属性:返回前一个兄弟元素

访问指定节点

eg:
<body id="b1">
    <h3>三号标题</h3>
    <b>加粗内容</b>
    <script text="text/javascript">
        var by = document.querySelector('#b1');
        var str;
        str = '节点名称:'+by.nodeName+'\n';
        str += '节点类型:'+by.nodeType+'\n';
        str += '节点值:'+by.nodeValue+'\n';
        console.log(str)
    </script>
</body>

在这里插入图片描述

创建新节点

  • 使用文档对象中的createElement()和createTextNode()方法,生成一个新元素
    createElement():创建新节点
    createTextNode():创建节点文本

  • 再使用appendChild()方法将创建创建的新节点添加到当前节点的末尾处
    appendChild(newNode):将新节点’newNode’添加到页面中

<!-- 创建单个节点 -->
<script>
    window.onload = function(){
     
        var b = document.createElement('b');//创建节点元素b
        var txt = document.createTextNode('创建新节点');//创建文本节点
        b.appendChild(txt);//将节点文本添加到节点中
        document.body.appendChild(b);//将新节点b添加到页面上
    }
</script>
<!-- 创建多个节点 -->
<script>
    window.onload = function(){
     
        var txt = ['第一个节点','第二个节点','第三个节点','第四个节点','第五个节点','第六个节点']
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南栀~zmt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值