作者:Milos ProticDOM 或文档对象模型是 web 页面上所有对象的根 。它表示文档的结构,并将页面连接到编程语言 。它的结构是一个逻辑树 。每个分支结束于一个节点,每个节点包含子节点、对象 。DOM API非常庞大,在本文中,咱们只讨论比较常用有有用的那些API 。
译者:前端小智
来源:impressivewebs.
document.querySelector & document.querySelectorAll【13个需要知道的方法:使用 JavaScript 来操作 DOM】document.querySelector方法返回文档中与指定选择器或选择器组匹配的第一个 html 元素 。如果找不到匹配项,则返回null 。
document.querySelectorAll 方法返回与指定的选择器组匹配的文档中的元素列表 (使用深度优先的先序遍历文档的节点) 。返回的对象是 NodeList。
文章插图
document.createElement在一个 HTML 文档中, Document.createElement(tagName) 方法创建由 tagName 指定的 HTML 元素,或一个HTMLUnknownElement,如果tagName不被识别 。
Node.AppendChildNode.appendChild()方法将节点添加到给定父节点的子节点列表的末尾 。请注意,如果给定的子代是文档中现有节点的引用,则它将移动到新位置 。看看示例:
文章插图
Node.insertBefore此方法在给定的父节点内的子引用节点之前插入给定节点(并返回插入的节点)
伪代码如下所示:
- 北京
- 上海
- 深圳
- ↓
Node.insertBefore('厦门','北京') - ↓
- 厦门
- 北京
- 上海
- 深圳
文章插图
Node.removeChildNode.removeChild方法从DOM中删除一个子节点并返回删除的节点 。请注意,返回的节点不再是DOM的一部分,而是仍存在于内存中 。如果处理不当,可能会导致内存泄漏 。
文章插图
Node.replaceChild此方法替换父节点中的子节点(并返回替换后的旧子节点) 。请注意,如果处理不当,此方法可能导致与Node.removeChild类似的内存泄漏问题 。
文章插图
Node.cloneNodeNode.cloneNode(deep) 方法返回调用该方法的节点的一个副本,deep(可选)表示是否采用深度克隆,如果为true,则该节点的所有后代节点也都会被克隆,如果为false,则只克隆该节点本身.
let list = document.querySelector('ul');let clone = list.cloneNode();Element.getAttribute / Element.setAttributeElement.getAttribute方法返回元素上给定属性的值,反之亦然,Element.setAttribute设置给定元素上属性的值 。
文章插图
Element.hasAttribute / Element.removeAttributeElement.hasAttribute方法检查给定元素是否具有指定的属性,返回值为boolean 。通过调用Element.removeAttribute方法,我们可以从元素中删除具有给定名称的属性 。
文章插图
Element.insertAdjacentHTMLelement.insertAdjacentHTML(position, text) 将指定的文本解析为HTML或XML,并将结果节点插入到DOM树中的指定位置 。它不会重新解析它正在使用的元素,因此它不会破坏元素内的现有元素 。这避免了额外的序列化步骤,使其比直接innerHTML操作更快 。
position是相对于元素的位置,并且必须是以下字符串之一:
beforebegin:元素自身的前面 。
afterbegin:插入元素内部的第一个子节点之前 。
beforeend:插入元素内部的最后一个子节点之后 。
afterend:元素自身的后面 。
text是要被解析为HTML或XML,并插入到DOM树中的字符串 。
文章插图
示例:
var list = document.querySelector('ul');list.insertAdjacentHTML('afterbegin', '<li id="first-item">First</li>');总结希望本文对你有所帮助,并且有助于你理解DOM 。正确处理DOM树非常重要,如果操作不正确,可能会导致严重后果 。
推荐阅读
- 鸡蛋可以和粽子一起吃吗 粽子里煮鸡蛋需要把鸡蛋打碎吗
- 淘宝全球购入驻要求 淘宝加入全球购需要多少钱
- 梦见没见过面的异性,还知道名字 梦见没见过面的异性对我很好
- c店怎么开 淘宝c店建店需要做哪些准备工作
- 这6种食物不能“趁鲜吃”,恐怕没有几个知道的
- 如何知道自己是不是抑郁 抑郁症是什么症状
- 快来自测一下 家里的电热水器需不需要换?
- 淘宝做化妆品需要什么条件 淘宝开店卖化妆品需要什么条件
- 三元催化器究竟是什么东西?为什么车辆会需要
- 淘宝开店卖茶叶需要营业执照吗 淘宝开店卖茶叶需要什么条件