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

作者: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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

很遗憾,总对工作挑挑拣拣的家伙,一般结局都不会太好

这是头哥侃码的第233篇原创在过去的五年里,我最怕遇到两件事。一是失眠,一个人半夜醒来,瞬间毫无困意,只能瞪大眼睛望着天花板数羊,等待着黎明的到来。二是每到春节之前,在进行团队年度绩效评估和年终奖发放…

为什么技术与产品沟通起来总是那么痛苦

“如果产品经理过一会又打电话说再买个“面包”。。。那就折腾死程序员了。” 为什么产品与技术沟通起来总是那么痛苦?有时候你觉得很简单的一件事,在程序的世界里很有可能变得纷繁复杂。 编程语言,它终归是一门语言,只是它的使用…

python中双重循环_python中双循环

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 如果你对python中的for循环不是很清楚,请看看这篇文章:for循环控制语句——菜鸟的py…

Dapr 交通流量控制示例

Dapr 已在塔架就位 将发射新一代微服务牛年 dotnet云原生技术趋势Dapr是如何简化微服务的开发和部署前面几篇文章都是从大的方面给大家分享Dapr 能帮助我们解决什么问题,微软从开源到1.0 也是经过2年的时间开发,因此我写了这几篇文章也只能是带领大家对D…

apt-get 更新指定软件_GrandPerspective for mac(磁盘管理软件)

GrandPerspective for mac是一款Mac平台上的磁盘管理软件,GrandPerspective Mac版用图形直观显示磁盘和指定目录使用状况。最占空间的文件/目录一目了然,便于管理你的Mac磁盘空间。GrandPerspective for Mac下载带给大家,欢迎大家前来下载&am…

月薪多少才算80后中的人生赢家?他们的经济、婚姻、生活方式是怎样的

如今,80后已成为职场、家庭、社会的中流砥柱。在这一代人中,现在月薪多少才算跑赢同龄人的“人生赢家”呢? 近期,复旦大学人口与发展政策研究中心、复旦大学社会科学数据研究中心最新发布的“80后的世界——复旦大学长三角社会变迁…

用gis打开tif格式_如何下载SHP矢量格式的等高线

一、什么是等高线?等高线指的是地形图上高程相等的相邻各点所连成的闭合曲线,把地面上海拔高度相同的点连成的闭合曲线,并垂直投影到一个水平面上,并按比例缩绘在图纸上,就得到等高线。等高线也可以看作是不同海拔高度…

5种设置ASP.NET Core应用程序URL的方法

默认情况下,ASP.NET Core应用程序监听以下URL:•http://localhost:5000•https://localhost:5001在这篇文章中,我展示了5种不同的方式来更改您的应用程序监听的URL。•在Program.cs中使用 UseUrls()•环境变量 - 使用DOTNET_URLS或者 ASPNETC…

分布式部署_Apache Spark探秘:三种分布式部署方式比较

【本文详细介绍了Spark的三种部署方式及其比较,欢迎读者朋友们阅读、转发和收藏!】目前Apache Spark支持三种分布式部署方式,分别是 standalone 、 spark on mesos 和 spark on YARN ,其中,第一种类似于MapReduce 1.0所…

备战美赛,这些你应该知道的知识点

国赛刚过完 美赛就接踵而来 只剩下两个多月的时间 不少准备参赛的小伙伴在后台咨询 该如何准备美赛 为了更好地帮助大家进攻美赛 超模君特意邀请到 今年国赛A题Matlab创新奖&一等奖获奖者 方天庆同学 (获奖队伍:黄璐哲、方天庆、帅青) 为…

2020研究生数学建模结果_关于举办2020年全国研究生数学建模大赛的通知

2020年全国研究生数学建模大赛开始啦!各学院: 为在大学生中倡导学习统计、应用统计的良好氛围,适应大数据时代的高校统计和数据科学人才的培养要求,提高研究生的数据挖掘、数据分析、运用计算机处理数据的能力,加强创新…

我计划搞直播了,欢迎来一起聊一聊

阅读本文大概需要2分钟。说实话从2015年开始写公众号至今,能想到的是我的坚持,没想到的是居然能快速收获这么多关注,更没想到是能影响一大群人,得到大家的尊称张队。公众号始终围绕着dotnet 生态进行,2015年dotnet刚开始开源&…

code删除前两个_听说用python来批量删除说说也挺快乐的呢~

原文链接听说用python来批量删除说说也挺快乐的呢~​mp.weixin.qq.com先睹为快在终端运行如下命令即可:python clearQzone.py (--manual)如果加了--manual选项,意思就是每条说说删除前你都要先人工确认一下是否真的需要删除它,否则就是直接把…

放弃Python转向Go语言:我们找到了以下9大理由

转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时。今年 Stream 团队的主要编程语言从 Python 转向了 Go。本文解释了其背后的九大原因以及如何做好这一转换。 为什么使用 Go 原因 1:性能 Go 极其地快。其性能与 Java 或 C相似…

开源许可证的变更带给我们什么启示?

喜欢就关注我们吧!近日,Elastic 公司将旗下的知名开源项目 Elasticsearch 和 Kibana 的开源许可证变更的事件持续发酵,再次把我们的目光聚焦到开源公司与云服务厂商之间的矛盾旋涡中。事实上,Elastic 公司与云服务厂商的“积怨”由…

as本地仓库更改_将gitee仓库连接GitHub Desktop。新建更改仓库并上传至gitee。

Ⅰ、在GitHub Desktop上登陆账号GitHub Desktop上只能用GitHub账户登陆第一次打开GitHub Desktop使会直接有登陆界面出现的,直接用GitHub的账户登陆就好了可以在最上方的菜单,File → Options打开页面登陆 (详细操作见图)这是已经…

有人问我:程序员要供祖师爷的话该供谁?

有人问我:程序员是不是都抽烟? 我想了半天我抽烟完全是因为医生,在我刚上大学的时候还不会吸烟,有一天嗓子特别疼,我就去医院检查,大夫检查之后对我说,没什么太大毛病,你少抽点烟就行…

java父类转子类_java中什么是继承,和继承的接口的关系?

继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相…

VSCode+BeetleX.VueHost开发Vue应用

BeetleX.VueHost是一个用于打包Vue和提供HTTP服务的程序,它能提供在没安装vue-cli和webpack的情况下开发vuejs应用。使用 BeetleX.VueHost无须安装下载运行即可,可以通过以下地址下载:链接:https://pan.baidu.com/s/1z4Jfz…

8 无法识别raid盘_王者荣耀防沉迷规则再升级;未来将采用人脸识别验证

昨天,《王者荣耀》官网发布了《未成年人防沉迷新规接入公告》,这份公告对于未成年人的可游玩时长、充值金额等都做出了规定。规则规定:在游玩时长方面,未成年用户每日22时至次日8时禁玩,法定节假日每日限玩3小时&#…