element 方法返回的boolean被当成字符串了_13个需要知道的方法:使用 JavaScript 来操作 DOM...

本文介绍了DOM(文档对象模型)的基础知识,包括常用的方法如querySelector、querySelectorAll、createElement、appendChild等,以及如何正确操作DOM以避免潜在的问题。通过示例展示了如何在JavaScript中有效地操作DOM节点,强调了正确处理DOM对前端开发的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:Milos Protic
译者:前端小智
来源:impressivewebs.

DOM 或文档对象模型是 web 页面上所有对象的根。它表示文档的结构,并将页面连接到编程语言。它的结构是一个逻辑树。每个分支结束于一个节点,每个节点包含子节点、对象。DOM API非常庞大,在本文中,咱们只讨论比较常用有有用的那些API

document.querySelector & document.querySelectorAll

document.querySelector方法返回文档中与指定选择器或选择器组匹配的第一个 html 元素。 如果找不到匹配项,则返回null。

document.querySelectorAll 方法返回与指定的选择器组匹配的文档中的元素列表 (使用深度优先的先序遍历文档的节点)。返回的对象是 NodeList 。

57e777e78f93ef3e36d312ddf05dcefa.png

document.createElement

在一个 HTML 文档中, Document.createElement(tagName) 方法创建由 tagName 指定的 HTML 元素,或一个HTMLUnknownElement,如果tagName不被识别。

Node.appendChild

Node.appendChild()方法将节点添加到给定父节点的子节点列表的末尾。 请注意,如果给定的子代是文档中现有节点的引用,则它将移动到新位置。看看示例:

25991092a9eb32d3937945e647685f9b.png

Node.insertBefore

此方法在给定的父节点内的子引用节点之前插入给定节点(并返回插入的节点)

伪代码如下所示:

  • 北京
  • 上海
  • 深圳

  • Node.insertBefore('厦门','北京')
  • 厦门
  • 北京
  • 上海
  • 深圳
e02e09c8f07416fe3bec436b854b17ea.png

1212 期间,原价 3000 多的配置的服务,只要 89每年,感觉好划算的,建议在购买阿里云相关产品前先领取阿里云2000代金券会更优惠哦。想了解一些前端的后台知识及学习全栈的,可以识别了解详情

8205fe283d49de50f4cbea9a18b65280.png

Node.removeChild

Node.removeChild方法从DOM中删除一个子节点并返回删除的节点。 请注意,返回的节点不再是DOM的一部分,而是仍存在于内存中。 如果处理不当,可能会导致内存泄漏。

65574e25c41ccab99bc74f82bb7419a8.png

Node.replaceChild

此方法替换父节点中的子节点(并返回替换后的旧子节点)。请注意,如果处理不当,此方法可能导致与Node.removeChild类似的内存泄漏问题。

580b982c909cb258ffc6d679d1f079c4.png

Node.cloneNode

Node.cloneNode(deep) 方法返回调用该方法的节点的一个副本,deep(可选)表示是否采用深度克隆,如果为true,则该节点的所有后代节点也都会被克隆,如果为false,则只克隆该节点本身.

let list = document.querySelector('ul');let clone = list.cloneNode();

Element.getAttribute / Element.setAttribute

Element.getAttribute方法返回元素上给定属性的值,反之亦然,Element.setAttribute设置给定元素上属性的值。

e358c32d0f82bcc64c98484266fd85f9.png

Element.hasAttribute / Element.removeAttribute

Element.hasAttribute方法检查给定元素是否具有指定的属性,返回值为boolean。 通过调用Element.removeAttribute方法,我们可以从元素中删除具有给定名称的属性。

4405032bd7fadc319b569330ecd5966f.png

Element.insertAdjacentHTML

element.insertAdjacentHTML(position, text) 将指定的文本解析为HTML或XML,并将结果节点插入到DOM树中的指定位置。它不会重新解析它正在使用的元素,因此它不会破坏元素内的现有元素。这避免了额外的序列化步骤,使其比直接innerHTML操作更快。

position是相对于元素的位置,并且必须是以下字符串之一:

beforebegin:元素自身的前面。afterbegin:插入元素内部的第一个子节点之前。beforeend:插入元素内部的最后一个子节点之后。afterend:元素自身的后面。

text是要被解析为HTML或XML,并插入到DOM树中的字符串。

6bfca1b69c4e9ac3da182c771f78d1b2.png

示例:

var list = document.querySelector('ul');list.insertAdjacentHTML('afterbegin', '
First');

总结

希望本文对你有所帮助,并且有助于你理解DOM。正确处理DOM树非常重要,如果操作不正确,可能会导致严重后果。


原文:https://www.impressivewebs.com/10-essential-dom-methods-techniques-for-practical-javascript/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值