首页 > 编程语言 >【JavaScript36】HTML DOM创建/插入/删除/替换元素

【JavaScript36】HTML DOM创建/插入/删除/替换元素

时间:2023-08-10 23:22:06浏览次数:32  
标签:appendChild btn DOM JavaScript36 HTML button div document 节点

createElement 创建元素

  • document.createElement() 可以创建一个元素
  • document.createTextNode() 创建一个文本节点
  • appendChild() 方法可向节点的子节点列表的末尾添加新的子节点。
<div id="demo">
    <p id="p1">这是文本内容</p>
</div>
<script>
    // div下添加一个子元素节点,放到p标签下
    btn = document.createElement('button');
    // 给button添加文本节点
    btn.appendChild(document.createTextNode('点我'))

    div = document.getElementById('demo');
    // div 添加子节点
    div.appendChild(btn);
</script>

insertBefore() 方法

  • insertBefore() 方法可在已有的子节点前插入一个新的子节点。
  • 语法:node.insertBefore(newnode,existingnode)
    • 如果第二个参数传null,跟 appendChild() 方法实现效果一样,在div后面加子元素
<div id="demo">
    <p id="p1">这是文本内容</p>
</div>
<script>
    // 创建元素节点
    btn = document.createElement('button');
    // 给button添加文本节点
    btn.appendChild(document.createTextNode('点我'))

    div = document.getElementById('demo');
    // div 添加子节点
    div.insertBefore(btn, document.getElementById('p1'));
</script>

removeChild 移除子节点

<div id="demo">
    <p id="p1">这是文本内容</p>
    <p id="p2">hello world</p>
</div>
<script>
    div = document.getElementById('demo');
    div.removeChild(document.getElementById('p1'));
</script>

replaceChild 替换子节点

<div id="demo">
    <p id="p1">这是文本内容</p>
    <p id="p2">hello world</p>
</div>
<script>
    // 创建节点
    btn = document.createElement('button');
    // 给button添加文本节点
    btn.appendChild(document.createTextNode('点我'))

    div = document.getElementById('demo');
    div.replaceChild(btn, document.getElementById('p2'));
</script>

更简单方法

  • appendChild,insertBefore, removeChild, replaceChild 这几个方法都依赖于父元素。还有几个更简便的方法,不依赖于父元素,可以直接在当前元素操作
//after 取代 appendChild
<div id="demo">
    <p id="p1">这是文本内容</p>
    <p id="p2">hello world</p>
</div>
<script>
    // 创建节点
    btn = document.createElement('button');
    // 给button添加文本节点
    btn.appendChild(document.createTextNode('点我'))
    // p2标签前面添加元素
    div = document.getElementById('p2');
    div.after(btn);
</script>

//before 可以取代insertBefore
<div id="demo">
    <p id="p1">这是文本内容</p>
    <p id="p2">hello world</p>
</div>
<script>
    // 创建节点
    btn = document.createElement('button');
    // 给button添加文本节点
    btn.appendChild(document.createTextNode('点我'))
    // p2标签前面添加元素
    div = document.getElementById('p2');
    div.before(btn);
</script>

//remove 删除指定元素
<div id="demo">
    <p id="p1">这是文本内容</p>
    <p id="p2">hello world</p>
</div>
<script>
    div = document.getElementById('p2');
    div.remove();
</script>

## 总结
![](/i/l/?n=23&i=blog/1544134/202308/1544134-20230810231330989-2081436314.png)

标签:appendChild,btn,DOM,JavaScript36,HTML,button,div,document,节点
From: https://www.cnblogs.com/xwltest/p/17621872.html

相关文章

  • 【JavaScript35】innerText 和 innerHTML
    获取内容时innerHTML从对象的起始位置到终止位置的全部内容,还包括HTML标签。innerText会去掉标签的内容。innerText和innerHTML获取内容示例<divid="demo"><pid="p1"><strong>这是文本内容</strong></p>helloworld!</div><script>......
  • HTMLParser(一个比较流行的html代码解析、处理开源项目)学习,总结
    主页:http://htmlparser.sourceforge.net/ HtmlParser初步研究bylostfire这两天准备做一些网站编程的工作,于是对HtmlParse小研究了一下,目的是快速入手,而不是深入研究,做了一下整理,和大家共同讨论一下。一,数据组织分析:HtmlParser主要靠Node、AbstractNode和Tag来表达Html,因为Remar......
  • 借助Aspose.Html 将 HTML 模板与 XML 或 JSON 合并
    在现代网络开发中,内容和表示的分离是一个基本原则。HTML模板提供了一种定义网页结构和布局的便捷方法,而JSON和XML数据格式通常用于存储和传输结构化信息。结合这些技术,开发人员可以根据外部源的数据动态生成HTML内容。在这篇博文中,我们将探讨如何在Java中将HTML模板与JS......
  • 构建含wkhtmltopdf的jre镜像
    目录官网地址字体下载支持wkhtmlto的镜像Dockerfile构建镜像验证wkhtmltopdf官网地址https://wkhtmltopdf.org/字体下载https://github.com/StellarCN/scp_zh/tree/master/fonts支持wkhtmlto的镜像https://hub.docker.com/r/aantonw/alpine-wkhtmltopdf-patched-qt将......
  • 【JavaScript31】HTML DOM节点与节点属性
    前言DOM(DocumentObjectModel)文档对象模型,通过HTMLDOM,JavaScript能够访问和改变HTML文档的所有元素。当网页被加载时,浏览器会创建页面的文档对象模型(DocumentObjectModel)。HTMLDOM模型被结构化为对象树:DOM节点根据W3C的HTMLDOM标准,HTML文档中的所有内......
  • HTML5 技术在风电、光伏等新能源领域的应用
    随着新一轮工业革命兴起,应对气候变化日益成为全球共识,能源技术正在成为引领能源产业变革、实现创新驱动发展的源动力。从全球到中国,以风能、光伏发电为代表的新能源产业发展迅速,可再生能源发电与现代电网的融合成为了世界能源可持续转型的核心,发电技术继续沿着大规模、高效率和低成......
  • 基于 HTML5 OpenLayers3 实现 GIS 电信资源管理系统
    前言通过结合HTML5和OpenLayers可以组合成非常棒的一个电信地图网络拓扑图的应用,形成的效果可以用来作为电信资源管理系统,美食定位分享软件,片区找房,绘制铁轨线路等等,各个领域都能够涉及的一款应用。虽然这个Demo是结合OpenLayers3的,其实还可推广到与ArcGIS、百度地图以及......
  • html&css
    B/S软件的结构javaSE:C/S结构ClientServerB/SBrower(浏览器)Server前端的开发流程前端指的是页面部分的开发网页的组成部分HTML简介创建HTML页面这个是在IDEA中编写html文件,创建普通的项目即可,然后在项目的目录下创建html文件html文件的编写规范注释在运行......
  • 为什么操作dom比较耗时
    为甚操作dom比较耗时以前只知道操作dom比较耗时,但是不知道为什么,也没有去深究,今天知道了为什么记录一下这个问题应该是有上下文的操作dom比较耗时,应该是相对于普通js操作,操作dom比较耗时,上一段代码比较有说服力consttimes=1000000console.time('js')letbody=docume......
  • django响应html
    fromdjango.templateimportTemplate,Context,loaderdefindex(req): t=loader.get_template("index.html") c=Context({}) #returnHttpResponse(loader.get_template("index.html").render({})) returnHttpResponse(t.render(c))def......