JS对于DOM节点进行增删改查

这次给大家带来JS对于DOM节点进行删改查,JS对于DOM节点进行增删改查的注意事项有哪些,下面就是实战案例,一起来看一下。

DOM含义:DOM是文档对象模型(Document Object Model,是基于浏览器编程的一套API接口,是W3C出台的推荐标准。其赋予了JS操作节点的能力。当网页被加载时,浏览器就会创建页面的文档对象模型。

节点:根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:

1、整个文档时一个文档节点。
2、每个HTML元素是元素节点。
3、HTML元素内的文本是文本节点。
4、每个HTML属性是属性节点。
5、每个注释是注释节点。

所以HTML DOM 将 HTML 文档视作树结构,这种结构被称为节点树。通过 HTML DOM,节点树中的所有节点都可以通过 JS 进行访问。所有 HTML 元素(节点)均可被修改。

一、创建节点、追加节点

1、createElement(标签名)创建一个元素节点(具体的一个元素)。
2、appendChild(节点)追加一个节点。
3、createTextNode(节点文本内容)创建一个文本节点

var op = document.createElement("p");//创建一个p元素,因为是document对象的方法。var opText = document.createTextNode("666");//创建一个文本节点内容是“666”,因为是document对象的方法。op.appendChild(opText);//父级.appendChild(子节点);在p元素中添加“666”document.body.appendChild(op);//父级.appendChild(子节点);;document.body是指向元素document.documentElement.appendChild(createNode);//父级.appendChild(子节点);;document.documentElement是指向元素

登录后复制

二、插入节点

1、appendChild(节点)也是一种插入节点的方式,还可以添加已经存在的元素,会将其元素从原来的位置移到新的位置。
2、insertBefore(a,b)是参照节点,意思是a节点会插入b节点的前面。

var op = document.createElement("p");//创建一个p元素,因为是document对象的方法。var op1 = document.getElementById("p1");document.body.insertBefore(op,op1);//在op1节点前插入新创建的元素节点ul.appendChild(ul.firstChild); //把ul的第一个元素节点移到ul子节点的末尾

登录后复制

三、删除、移除节点

1、removeChild(节点) 删除一个节点,用于移除删除一个参数(节点)。其返回的被移除的节点,被移除的节点仍在文档中,只是文档中已没有其位置了。

var removeChild = document.body.removeChild(p1);//移除document对象的方法p1

登录后复制

四、替换节点

1、replaceChild(插入的节点,被替换的节点) ,用于替换节点,接受两个参数,第一参数是要插入的节点,第二个是要被替换的节点。返回的是被替换的节点。

var replaceChild= document.body.replaceChild(p1,p2); //将p1替换p2

登录后复制

五、查找节点

1、childNodes 包含文本节点和元素节点的子节点。

for (var i = 0; i < oList.childNodes.length; i++) {//oList是做的ul的对象。//nodeType是节点的类型,利用nodeType来判断节点类型,再去控制子节点//nodeType==1 是元素节点//nodeType==3 是文本节点  if (oList.childNodes[i].nodeType == 1) {//查找到oList内的元素节点    console.log(oList.childNodes[i]);//在控制器日志中显示找到的元素节点  }}

登录后复制

2、

A、children也可以获取子节点,而且兼容各种浏览器。包括IE6-8

B、parentNode:获取父节点

var oList = document.getElementById('list');//oList是做的ul的对象var oChild=document.getElementById('child');//oChild是做的ul中的一个li的对象//通过子节点查找父节点//parentNode:获取父节点console.log(oChild.parentNode);//在控制器日志中显示父节点console.log(oList.children);//在控制器日志中显示oList子节点console.log(children.length)//子节点的个数

登录后复制

3、

A、firstChild ; firstElementChild查找第一个子节点。此存在浏览器兼容问题:firstChild是IE兼容,firstElementChild是非IE兼容。

//查找第一个子节点的封装函数function firstChild(ele) {  if (ele.firstElementChild) {//如果该条件是true则在该浏览器(IE或非IE)中兼容    return ele.firstElementChild;  } else {    return ele.firstChild;  }}firstChild(oList).style.background = 'red';//将获得的节点的背景变成红色

登录后复制

B、lastChild ; lastElementChild查找最后一个子节点。此存在浏览器兼容问题:lastChild 是IE兼容,lastElementChild是非IE兼容。

//查找最后一个子节点的封装函数function lastChild(ele) {  if (ele.lastElementChild) {//如果该条件是true则在该浏览器(IE或非IE)中兼容    return ele.lastElementChild;  } else {    return ele.lastChild;  }}lastChild(oList).style.background = 'red';//将获得的节点的背景变成红色

登录后复制

C、nextSibling ; nextElementSibling查找下一个兄弟节点。也是存在兼容性问题

//查找下一个兄弟节点的封装函数function nextSibling(ele) {  if (ele.nextElementSibling) {    return ele.nextElementSibling;  } else {    return ele.nextSibling;  }}nextSibling(oMid).style.background = 'red';

登录后复制

D、previousSibling ; previousElementSibling查找上一个兄弟节点。也是存在兼容性问题

//查找上一个兄弟节点的封装函数function previousSibling(ele) {  if (ele.nextElementSibling) {    return ele.previousElementSibling;  } else {    return ele.previousSibling;  }}previousSibling(oMid).style.background = 'red';

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读

JS中有哪些常用数学函数?

如何操作vue在自定义组件内启用用v-model

以上就是JS对于DOM节点进行增删改查的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2754095.html

(0)
上一篇 2025年3月8日 06:50:16
下一篇 2025年2月25日 18:22:02

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎样使用vue引入js数字小键盘

    这次给大家带来怎样使用vue引入js数字小键盘,使用vue引入js数字小键盘的注意事项有哪些,下面就是实战案例,一起来看一下。 效果如图: 代码如下:   keyboard.vue 123 符 · {{key}} import clicko…

    2025年3月8日 编程技术
    200
  • nodejs res.end与res.send使用区别有哪些

    这次给大家带来nodejs res.end与res.send使用区别有哪些,nodejs res.end与res.send使用的注意事项有哪些,下面就是实战案例,一起来看一下。 简单来说就是   如果服务器端没有数据返回到客户端 那么就可以…

    编程技术 2025年3月8日
    200
  • 如何使用node.js中render和send

    这次给大家带来如何使用node.js中render和send,使用node.js中render和send的注意事项有哪些,下面就是实战案例,一起来看一下。 如果想写一个快速测试页,当然可以使用res.send()。这个函数将根据内容,自动帮…

    编程技术 2025年3月8日
    200
  • 怎样使用vscode调试编译js代码

    这次给大家带来怎样使用vscode调试编译js代码,使用vscode调试编译js代码的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 在开发的过程中,几乎不可能一次性就能写出毫无破绽的程序,断点调试代码是一个普遍的需求。 vscod…

    2025年3月8日
    200
  • JavaScript的数据类型转换原则

    javascript是一门弱类型(或称动态类型)的语言,即变量的类型是不确定的。下面通过本文给大家分享javascript数据类型转换小结,包括显示转换的数据类型和隐式的数据类型转换,感兴趣的朋友一起看看吧 我们都知道JavaScript是…

    2025年3月8日
    200
  • 如何使用nodeJs爬虫

    这次给大家带来如何使用nodeJs爬虫,使用nodeJs爬虫的注意事项有哪些,下面就是实战案例,一起来看一下。 背景 最近打算把之前看过的nodeJs相关的内容在复习下,顺便写几个爬虫来打发无聊,在爬的过程中发现一些问题,记录下以便备忘。 …

    编程技术 2025年3月8日
    200
  • 怎样修改Nodejs内置npm默认配置

    这次给大家带来怎样修改Nodejs内置npm默认配置,修改Nodejs内置npm默认配置的注意事项有哪些,下面就是实战案例,一起来看一下。 Nodejs 内置的npm默认会把模块注意事项在c盘的用户AppData目录下(吐槽一下:不明白为啥…

    2025年3月8日 编程技术
    200
  • 怎样操作nodejs取得当前执行路径

    这次给大家带来怎样操作nodejs取得当前执行路径,操作nodejs取得当前执行路径的js有哪些,下面就是实战案例,一起来看一下。 process.cwd() 当前执行程序的路径(执行命令行时候的路径,不是代码路径 例如 在根目录下执行 n…

    编程技术 2025年3月8日
    200
  • node.js进入文件目录后应如何使用

    这次给大家带来node.js进入文件目录后应如何使用,node.js进入文件目录使用的注意事项有哪些,下面就是实战案例,一起来看一下。 要进入莫一个目录比如:”D:react” 首先要:d: 然后:cd d:eact…

    2025年3月8日
    200
  • JS实现导出Excel的五种方法详解

    这篇文章主要介绍了js实现导出excel的五种方法,结合实例形式较为详细的分析了基于table表格导出excel文件的相关操作技巧,并附源码供读者下载参考,需要的朋友可以参考下 本文实例讲述了JS实现导出Excel的五种方法。分享给大家供大…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论