javaScript 原生DOM节点操作(最实用的dom节点操作大全)

简介: javaScript 原生DOM节点操作(最实用的dom节点操作大全)

简单介绍一下DOM

  • DOM (Document Object Model) 译为文档对象模型,是 HTMLXML 文档的编程接口。也就是说把文档编译成了一个对象模型,例如我们写的html文件实际上是一个文档文件,通过我们的浏览器把它编译成了一个对象模型,这个模型就是document对象。
  • DOM 以树结构表达 HTML 文档。就好像是一个家族谱,有父级元素也有对应的子级元素,那么document对象就是我们最大的父级元素。
  • 如下图,家族谱上面的每一个元素都是一个节点,通过对这些节点的操作,我们可以对这个页面为所欲为。

节点的分类

  • 元素节点
  • 属性节点
  • 文本节点

节点的操作

元素节点操作

  1. 通过元素的id来获取相应的节点
    document.getElementById("");
  2. 通过元素的标签名来获取节点
    document.getElementsByTagName("");
  3. 通过元素的类名来获取节点
    document.getElementsByClassName("");
  4. 通过元素的name属性来获取节点
    document.getElementsByName("");
  5. 获取元素的所有子节点
    node.childNodes;
  6. 创建元素节点
    document.createElement("tagName");
  7. 往父节点最后添加子节点
    fatherNode.append(childNode);
  8. 删除元素节点
    fatherNode.removeChild(childNode);
  9. 替换节点
    fatherNode.replaceChidl(newNode,oldNode);

注意:除了通过id选择节点的方式拿到的是一个确定的节点,其余的方式拿到的都会是一个数组,那么获取数组里面对应的节点需要用索引来取并且在Elements后面有s

例如:var body = document.ElementsByTagName("body")[0]

("fatherNode"表示父节点,"childNode"表示子节点)

属性节点操作

  1. 添加属性节点
    node.setAttribute('attr',"attrValue");
  2. 删除属性节点
    div.removeAttribute("attr");
  3. 修改属性节点
    div.setAttribute("attr","new");
  4. 获取属性节点
    div.getAttribute("style");

文本节点操作

  1. 创建文本节点
    var textNode = document.createTextNode("hello");
  2. 获取文本节点
    var textNode = div.childNodes[0];
  3. 删除起始位置开始的num个值
    textNode.deleteData(starNum,num);
  4. 尾部添加内容
    textNode.appendData("后面哦");
  5. 中间插入内容
    te.insertData(1,"中间哦");

innerHTML 和 innerText的区别

innerHTML
<body>
    <div id="div"></div>
    <script type="text/javascript">
        var div = document.getElementById("div");
        div.innerHTML = "<h1>hello</h1>";
    </script>
</body>

innerText
<body>
    <div id="div"></div>
    <script type="text/javascript">
        var div = document.getElementById("div");
        div.innerText = "<h1>hello</h1>";
    </script>
</body>

看出来了吧,innerHTMLinnerText是有本质上的区别的,innerHTML写入的内容可以解析成标签,而innerText写入的内容只能当作是文本在浏览器中显示。简单讲,innerHTML可以在某种特定环境下重构某个元素节点的DOM结构,而innerText只能修改文本值

总结

原生的DOM节点操作还是非常简单实用的,除了单词长了一点以外好像也没有什么明显的缺点,当然当我们刚开始使用DOM节点操作的时候,还是会遇到一些坑的。

最容易出错的地方就是document.getElements这里了,因为这里返回的是一个数组,记住是一个数组,而不是一个节点对象,所以一定要在数组的后面加上其对应的节点的索引值,就算这个数组里面只有一个元素,他还是一个数组。

把这里搞清楚剩下的就是靠大家的细心了,有一些操作是针对父级节点的,例如node.appendChild(),还有很多,一定要分清楚父级节点和子级节点的关系,才能玩转DOM节点操作。祝大家学习顺利,新年快乐!!!

目录
相关文章
|
23天前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
9天前
|
JavaScript 前端开发 索引
js中DOM的基础方法
【10月更文挑战第31天】这些DOM基础方法是操作网页文档结构和实现交互效果的重要工具,通过它们可以动态地改变页面的内容、样式和行为,为用户提供丰富的交互体验。
|
10天前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
8天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
14 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
22天前
|
JavaScript
HTML DOM 节点树
HTML DOM 节点是指在 HTML 文档对象模型中,文档中的所有内容都被视为节点。整个文档是一个文档节点,每个 HTML 元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。DOM 将文档表示为节点树,节点之间有父子和同胞关系。
|
22天前
|
JavaScript
HTML DOM 节点
HTML DOM(文档对象模型)将HTML文档视为节点树,其中每个部分都是节点:文档本身是文档节点,HTML元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。节点间存在父子及同胞关系,形成层次结构。
|
1月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
1月前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
1月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
42 4
|
1月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树