今天我们来继续来复习DOM的一些插入方法,insertBefore()append()prepend()方法。前面我们只用到过一个appendChild()方法。我们一个个看语法和示例,包你看完就会。

insertBefore()

insertBefore()用来在指定的DOM节点前插入DOM元素。

语法:

parentNode.insertBefore(newNode, existingNode);

parentNodeexistingNode的父节点

existingNode为已经存在的节点

newNode为新插入的节点,插入到existingNode的前面

工具函数

上面原生方法,可能还需要父节点,我们可以进行简单的封装使用

function insertBefore(newNode, existingNode) {existingNode.parentNode.insertBefore(newNode, existingNode);
}

例子

<ul id="menu"><li>产品</li>   <li>服务</li><li>联系我</li>
</ul><script>
let menu = document.getElementById('menu');
// 创建一个新的li节点
let li = document.createElement('li');
li.textContent = '首页';// 在第一个元素之前插入它
menu.insertBefore(li, menu.firstElementChild);
</script>

insertAfter()

JS DOM并没有insertAfter()这样一个方法,不过我们可以使用insertBefore()进行自己封装

工具函数

function insertAfter(newNode, existingNode) {existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling);
}

existingNode的下一个兄弟节点作为参照元素,在其前面进行插入新节点

例子

<ul id="menu"><li>首页</li>   <li>服务</li><li>联系我</li>
</ul><script>
let menu = document.getElementById('menu');
// 创建一个新的li节点
let li = document.createElement('li');
li.textContent = '产品';// 在第一个元素之前插入它
menu.insertBefore(li, menu.firstElementChild.nextSibling);
</script>

append()

append()和我们之前用的appendChild()方法很相似,在一个父元素的最后插入元素

语法:

parentNode.append(...nodes);
parentNode.append(...DOMStrings);

append node节点 示例

<ul id="app"><li>JavaScript</li>
</ul><script>
let app = document.querySelector('#app');let langs = ['TypeScript','HTML','CSS'];let nodes = langs.map(lang => {let li = document.createElement('li');li.textContent = lang;return li;
});app.append(...nodes);
</script>

最后页面的HTML将为

<ul id="app"><li>JavaScript</li><li>TypeScript</li><li>HTML</li><li>CSS</li>
</ul>

append DOMStrings 示例

<div id="app"></div><script>let app = document.querySelector('#app');app.append('append() 文本 Demo');console.log(app.textContent);// 输出:// append() 文本 Demo
</script>

最后页面的HTML将为

<div id="app">append() 文本 Demo</div>

append vs appendChild()

下面表格展示了 append()appendChild()的区别:

Differences append() appendChild()
返回值 undefined 插入的 Node 对象
参数 多个 Node 对象 单个Node 对象
参数类型 允许 Node 或者 DOMString Node

prepend()

append()方法类似,prepend()用来在最前面插入元素

语法:

parentNode.prepend(...nodes);
parentNode.prepend(...DOMStrings);

prepend node节点

<ul id="app"><li>HTML</li>
</ul><script>let app = document.querySelector('#app');let langs = ['CSS','JavaScript','TypeScript'];let nodes = langs.map(lang => {let li = document.createElement('li');li.textContent = lang;return li;});app.prepend(...nodes);
</script>

输出HTML

<ul id="app"><li>CSS</li><li>JavaScript</li><li>TypeScript</li><li>HTML</li>
</ul>

prepend() DOMStrings

<div id="app"></div><script>let app = document.querySelector('#app');app.prepend('prepend() 文本 Demo');console.log(app.textContent);// 输出:// prepend() 文本 Demo
</script>

最终的HTML为

<div id="app">prepend() 文本 Demo</div>

总结

今天我们复习了insertBefore()append()prepend()方法,掌握DOM基础插入方法,走遍天下都不怕。

明天见。

如果你想跟着我一起复习DOM知识,微信搜索【小帅的编程笔记】,每天更新

JS DOM 编程复习笔记 -- insertBefore、insertAfter、append、prepend(七)相关推荐

  1. JS DOM 编程复习笔记--父元素、子元素和兄弟元素(三)

    今天我们来复习DOM中的获取父元素.子元素和兄弟元素的API,它们主要有parentNode.firstChild.firstElementChild.lastChild.lastElementChi ...

  2. JS DOM 编程复习笔记 -- replaceChild、cloneNode、removeChild(八)

    今天我们继续来去复习DOM操作的三个API,分别为replaceChild.cloneNode.removeChild,替换节点.克隆节点.删除节点,下面一个个来看它们的语法以及使用案例. repla ...

  3. 前端JS基础知识复习笔记(1)

    珠峰前端JS基础复习笔记(1) 在财务工作中自学了HTML和CSS之后,硬啃了JS高级编程三,实在觉得想要学的透是需要找一位好老师的,于是最近在学习周啸天老师的JS高级编程课,课外需要再补补基础,就回 ...

  4. 前端JS基础知识复习笔记(2)

    珠峰的JS基础课程笔记(第二天) 今天早上做完了变量的作业,下午听基础课做做笔记,最好没有事干的时候可以翻出来看看,欢迎大家收藏和我一起复习回顾记忆,一起学习一起成长一起挣钱钱ヾ(◍°∇°◍)ノ゙ . ...

  5. Linux网络编程复习笔记

    理论知识点 TCP协议的三次握手的触发API connect : 第一次握手信息 第二次,第三次都是被动处理,无需调用接口 accept不参与三次握手,取出三次握手成功的描述符 socket描述符的合 ...

  6. Linux系统编程 复习笔记

    4 文件IO 操作 #include<fcntl.h> #include<unistd.h>#include<sys/types.h> creat int fd=c ...

  7. javascript DOM 编程艺术----笔记

    平稳退化和渐进增强原则平稳退化 : 如果正确的使用了JavaScript脚本,就可以让访问者在他们的浏览器不支持JavaScript的情况下仍能顺利的浏览你的网站. 这就是所谓的平稳退化(gracef ...

  8. JavaScript DOM编程艺术简略笔记

    简略目录 1.BOM 2.DHTML 3.数组 4.条件判断的注意点 5.函数中变量的作用域问题 6.几种对象的简介 7.BOM和DOM 8.DOM操作中的一些特别点 9.JS文件与CSS文件的引入方 ...

  9. JavaScript DOM编程艺术学习笔记(一)

    嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...

最新文章

  1. linux c 获取屏幕信息,Linux C 获取本机相关信息
  2. Uptime Tier Ⅳ标准数据中心的柴发油路设计关键点
  3. oracle数据库分组查询group by
  4. Dubbo Admin服务测试功能
  5. Ant Design Blazor 发布 0.9.0,共100+人贡献!
  6. dva源码解析(一)
  7. python多线程实现for循环_Python多线程实现同时执行两个while循环
  8. 华为云应用服务网格最佳实践之从Spring Cloud 到 Istio
  9. mcollective的web控制台---mcomaster搭建
  10. win7免费升级win10官方工具
  11. CSS 3之美化表格样式(二)
  12. azure微软文字转语音工具​AzureTools​使用
  13. ttl转rs232发送十六进制_浅析 UART、RS232、TTL 之间的关系(转)
  14. Oracle一次性查询超过1000条数据的方法(分批查询)
  15. (每日一练c++)有效的数独
  16. python 实现表情迁移
  17. 修改elemntui tabs 下划线长短
  18. OCiOS开发:使用相册、照相机和录像
  19. display、visibility和opactity的区别
  20. 迅捷音频转换器怎么使用? 1

热门文章

  1. 内蒙古科技大学本科生毕业论文计算机科学与技术
  2. 《Adobe Photoshop CS6中文版经典教程(彩色版)》—第2课2.9节使用污点修复画笔工具...
  3. 常见模板开启HTTPS后网站访问排版错乱
  4. 应对不确定冲击的企业之道
  5. Professional Plus 2010 Beta 激活
  6. x86服务器市场销售量排名,x86服务器出货量排名
  7. 计算机主页被篡改这是来自互联网的风险,IE主页为2345.com无法修改回来的解决方法...
  8. 平安好医生荣膺中国证券金紫荆奖“最佳新经济上市公司奖”
  9. 卸载软件时出现“不能够打开文件INSTALL.LOG”
  10. 统计方法巡礼(一)算命先生和统计方法