带你彻底学会JS DOM技术之创建,插入元素

简介: 1.创建元素在JavaScript中,我们可以使用createElement()来创建一个元素节点,也可以使用createTextNode()来创建一个文本节点,然后可以将元素节点与文本节点“组装”成我们平常看到的“有文本内容的元素”


1.创建元素


在JavaScript中,我们可以使用createElement()来创建一个元素节点,也可以使用createTextNode()来创建一个文本节点,然后可以将元素节点与文本节点“组装”成我们平常看到的“有文本内容的元素”。


这种方式又被称为“动态DOM操作”。所谓的“动态DOM”,指的是使用JavaScript创建的元素。这个元素一开始在HTML中是不存在的。


2.创建一个简单元素


接下来,我们来使用创建元素的方式生成一个加粗的文本内容:


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>IMUSTCTF</title>
  <script src="js/index.js"></script>
</head>
<body>
  <div id="content"></div>
</body>
</html>


window.onload=function() {
  var oDiv = document.getElementById("content");
  var oStrong = document.createElement("strong");
  var oTxt = document.createTextNode("IMUSTCTF");
  // 将文本节点插入strong元素
  oStrong.appendChild(oTxt);
  // 将strong元素插入div元素
  oDiv.appendChild(oStrong);
}


cca0e981c7364861abac49119d463783.png


3.创建一个复杂元素


如果要创建带有属性的复杂节点,那么代码也会相对复杂一些:


window.onload=function() {
  var oInput = document.createElement("input");
  oInput.id = "submit";
  oInput.type = "button";
  oInput.value = "登录";
  document.body.appendChild(oInput);
}


浏览器输出如下:


64ee45e9a2d14421ab988fc45c667e36.png


总结:想要创建一个元素,需要以下4步:


  • 创建元素节点:createElement
  • 创建文本节点:createTextNode
  • 把文本节点插入元素节点:appendChild
  • 把组装好的元素插入到已有元素中:appendChild

4.插入元素


在JavaScript中,插入元素有以下两种方法


appendChild(),insertBefore()


appendChild


在JavaScript中,我们可以使用appendChild()把一个新元素插入到父元素的内部子元素的“末尾”


A.appendChild(B);


A表示父元素,B表示动态创建好的新元素

案例:控制插入信息到列表中:


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>IMUSTCTF</title>
  <script src="js/index.js"></script>
</head>
<body>
  <ul id="list">
    <li>HTML</li>
    <li>CSS</li>
    <li>JS</li>
  </ul>
  <input type="text" id="txt"/>
  <input type="button" id="btn" value="插入"/>
</body>
</html>


window.onload=function() {
  var oBtn = document.getElementById("btn");
  oBtn.onclick = function() {
    var oUl = document.getElementById("list");
    var oTxt = document.getElementById("txt");
    // 将文本框的内容转化为文本结点
    var textNode = document.createTextNode(oTxt.value);
    var oLi = document.createElement("li");
    oLi.appendChild(textNode);
    oUl.appendChild(oLi);
  }
}


输入框中输入VUE,点击插入:

baa186ec20eb42ceaf16e4f6a4ad8be1.png


nsertBefore


在JavaScript中,我们可以使用insertBefore()方法将一个新元素插入到父元素中的某一个子元素“之前”


A.insertBefore(B,ref);


A表示父元素,B表示新子元素。ref表示指定子元素,A.insertBefore(B,ref)则表示在ref之前插入B

演示:


window.onload=function() {
  var oBtn = document.getElementById("btn");
  oBtn.onclick = function() {
    var oUl = document.getElementById("list");
    var oTxt = document.getElementById("txt");
    // 将文本框的内容转化为文本结点
    var textNode = document.createTextNode(oTxt.value);
    var oLi = document.createElement("li");
    oLi.appendChild(textNode);
    oUl.insertBefore(oLi,oUl.firstElementChild);
  }
}


插入元素后,新的元素会出现在列表的首位:


目录
相关文章
|
23天前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
9天前
|
JavaScript 前端开发 索引
js中DOM的基础方法
【10月更文挑战第31天】这些DOM基础方法是操作网页文档结构和实现交互效果的重要工具,通过它们可以动态地改变页面的内容、样式和行为,为用户提供丰富的交互体验。
|
10天前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
9天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
14 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
9天前
|
JavaScript 前端开发 中间件
JS服务端技术—Node.js知识点
本文介绍了Node.js中的几个重要模块,包括NPM、Buffer、fs模块、path模块、express模块、http模块以及mysql模块。每部分不仅提供了基础概念,还推荐了相关博文供深入学习。特别强调了express模块的使用,包括响应相关函数、中间件、Router和请求体数据解析等内容。文章还讨论了静态资源无法访问的问题及其解决方案,并总结了一些通用设置。适合Node.js初学者参考学习。
24 1
|
10天前
|
JavaScript 前端开发
|
24天前
|
前端开发 JavaScript 安全
JavaScript前端开发技术
JavaScript(简称JS)是一种广泛使用的脚本语言,特别在前端开发领域,它几乎成为了网页开发的标配。从简单的表单验证到复杂的单页应用(SPA),JavaScript都扮演着不可或缺的角色。
19 3
|
10天前
|
JavaScript 前端开发 API
|
前端开发 JavaScript
【JavaScript】动态修改元素的 background-image
【JavaScript】动态修改元素的 background-image
1003 0
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
95 2