改变HTML元素的方式有哪些?如何在HTML中添加/替换或删除元素?

使用 JavaScript 的 DOM 操作

如果想要修改元素的样式,就要先获取元素之后再进行下一步操作

获取元素:可以使用等方法获取到需要操作的 HTML 元素。

document.getElementById()
document.getElementsByClassName()
document.getElementsByTagName()
document.getElementsByName()
document.querySelector()
document.querySelectorAll()

  • 添加元素
    • 创建一个新的 HTML 元素,使用document.createElement()方法
    • 用户创建一段文本内容,使用document.createTextNode(‘文本内容’)

    • 用于创建一个属性,使用document.createAttribute(‘属性名’)

    • 用于给新属性节点添加属性值,使用属性节点.value = ‘属性值’

    • 用于给新标签添加新属性,使用标签节点.setAttributeNode(属性节点)

    • 用于将新标签添加到子元素列表的末尾,使用标签节点.appendChild(标签节点)

      <div  id="content">  <p>我是原生 p 标签</p>  </div>
      <script>
      let  p  =  document.createElement('p');  //  创建一个  p  标签
      let  pText  =  document.createTextNode('hello  world!');  //  创建一段文本 
      let  pIbute  =  document.createAttribute("style");  //  创建一个属性 
      pIbute.value  =  "color:blue";  //  设置属性值 
      p.setAttributeNode(pIbute);  //  将属性插入  p  标签内 
      p.appendChild(pText);  //  将文本插入  p  标签内
      let  content  =  document.getElementById('content');  //  获取页面已有  div content.appendChild(p);  //  将新创建的  p  标签插入到  div  中
      </script>

    • 使用innerHTML属性设置元素的内容
    • 使用 元素.属性 = 属性值 修改HTML的元素内容
    • 使用 元素.style=样式值 修改HTML元素的样式
      <div  id="content">  我是 DIV 标签  <p>我是 P 标签</p>  </div>
      <input  type="text"  id="inp"  value="123"  />
      <div  id="col">  我是黑色  </div><script>
      let  content  =  document.getElementById('content');
      content.innerHTML  =  "<h1>我是 H1 标签</h1>";let  inp  =  document.getElementById('inp');
      inp.value  =  456;let  col  =  document.getElementById('col');
      col.style.backgroundColor  =  'blue';
      </script>

  • 添加到文档中
  • 使用appendChild()放到元素的子集
  • 父元素.insertBefore(新节点,子元素),用于将新标签插入指定子元素的前面
  • 父元素.removeChild(要删除的子元素),用于删除父元素中的子元素

  • 父元素.replaceChild(新节点,要替换的子元素),用于替换父元素中的子元素

    let  h1  =  document.createElement('h1');  //  创建一个  p  标签
    let  h1Text  =  document.createTextNode('我是 h1 标签');  //  创建一段文本
    h1.appendChild(h1Text);  //  将文本插入  h1  标签内
    let  tag  =  document.getElementsByTagName('p')[0];  //  获取到原生 p 标签
    content.insertBefore(h1,tag);  //  将 h1 标签插入原生 p 标签之前

  • 替换元素
    • 获取要替换的元素:先使用上述获取元素的方法获取到需要被替换的元素和用于替换的新元素。
    • 替换元素:使用parentNode.replaceChild()方法,如
      let oldDiv = document.getElementById('oldDiv');
      let newDiv = document.createElement('div');
      newDiv.innerHTML = '新内容';
      oldDiv.parentNode.replaceChild(newDiv, oldDiv);。

  • 删除元素
    • 获取要删除的元素:使用获取元素的方法获取到需要删除的元素。
  • 删除元素:使用parentNode.removeChild()通过父级去删除子集的方法,如
    let elementToRemove = document.getElementById('elementId');
    elementToRemove.parentNode.removeChild(elementToRemove);

    获取元素的拓展

  • 用于获取当前元素的父元素,子元素.parentElement

  • 用于获取当前元素的子元素,父元素.children

  • 用于获取当前元素的下一个同级元素,当前元素.nextElementSibling

使用示例:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>DOM元素操作示例</title>
</head><body><div id="parentDiv"><p id="targetPara">这是一个段落</p><p>段落2</p><span>这是一个span元素</span></div><script>// 获取id为targetPara的元素let targetPara = document.getElementById('targetPara');// 使用parentElement获取父元素let parentElement = targetPara.parentElement;console.log("目标元素的父元素:", parentElement);console.log("父元素的id:", parentElement.id);// 使用children获取父元素的子元素let childrenElements = parentElement.children;console.log("父元素的子元素如下:");//遍历他的所有子集for (let i = 0; i < childrenElements.length; i++) {console.log(childrenElements[i]);}// 使用nextElementSibling获取目标元素的下一个同级元素let nextSibling = targetPara.nextElementSibling;console.log("目标元素的下一个同级元素:", nextSibling);if (nextSibling) {console.log("下一个同级元素的id:", nextSibling.id);}</script>
</body></html>

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

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

相关文章

Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 【AI辅助开发系列】

&#x1f380;&#x1f380;&#x1f380;【AI辅助编程系列】&#x1f380;&#x1f380;&#x1f380; Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…

【数据结构】数据结构整体大纲

数据结构用来干什么的&#xff1f;很简单&#xff0c;存数据用的。 &#xff08;这篇文章仅介绍数据结构的大纲&#xff0c;详细讲解放在后面的每一个章节中&#xff0c;逐个击破&#xff09; 那为什么不直接使用数组、集合来存储呢 ——> 如果有成千上亿条数据呢&#xff…

开放世界目标检测 Grounding DINO

开放世界目标检测 Grounding DINO flyfish Grounding DINO 是一种开创性的开放集对象检测器&#xff0c;它通过结合基于Transformer的检测器DINO与基于文本描述的预训练技术&#xff0c;实现了可以根据人类输入&#xff08;如类别名称或指代表达&#xff09;检测任意对象的功…

webrtc 源码阅读 make_ref_counted模板函数用法

目录 1. 模板参数解析 1.1 typename T 1.2 typename... Args 1.3 typename std::enable_if::value, T>::type* nullptr 2. scoped_refptr 3. new RefCountedObject(std::forward(args)...); 4. 综合说明 5.在webrtc中的用法 5.1 peerConnectionFactory对象的构建过…

RK3566和Robo_C的EMC防护设计细节

USB部分的防护细节&#xff1a; ROBO C的USB接口&#xff1a; PF级别的电容滤波&#xff1a; TVS电容&#xff08;TVS Capacitor&#xff09;&#xff1a;用于与TVS二极管配合&#xff0c;保护电路免受瞬态电压冲击。电容一般较小&#xff0c;通常为几十皮法&#xff08;pF&am…

如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈

如果你的网站是h5网站&#xff0c;如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈 h5如何转小程序 如果当年你们开发网站是用的h5但是没有开发小程序&#xff0c;也没有使用uniapp这样的混开框架&#xff0c;但是目前根据业务需…

30天面试打卡计划 2024-12-25 26 27 面试题

2024-12-25 面试题 后端 MySQL三层B树能存多少数据&#xff1f; B 树&#xff1a;一种特殊的多路平衡查找树&#xff0c;广泛应用于数据库索引中。它具有所有叶子节点都位于同一层且包含指向相邻叶子节点指针的特点&#xff0c;这使得范围查询更加高效。InnoDB&#xff1a;My…

微信流量主挑战:用户破16!新增文档转换(新纪元3)

朋友们&#xff0c;报告好消息&#xff01;我的小程序用户数量已经涨到16个了&#xff01;没错&#xff0c;真没拉朋友圈亲戚好友来撑场子&#xff0c;全靠实力&#xff08;和一点点运气&#xff09;吸引了16位陌生小伙伴光临&#xff01;这波进步&#xff0c;连我自己都感动了…

阿里云redis内存优化——PCP数据清理

在阿里云安装了一个redis节点&#xff0c;今天使用时忽然想着点击了一下分析内存。好家伙&#xff0c;居然崩出了一个30多M的块出来。问题是我本地安装的redis没有这个啊&#xff0c;怎么奇怪冒出这个来了。 本着把系统用干榨尽的态度&#xff0c;研究了下这个问题的来源。网上…

常见的排序算法过程和比较分析

比较分析 排序类别排序算法时间复杂度&#xff08;最好&#xff09;时间复杂度&#xff08;最坏&#xff09;时间复杂度&#xff08;平均&#xff09;辅助空间复杂度稳定性插入排序直接插入排序O(n)O(n)O(n)O(1)稳定插入排序折半插入排序O(n)O(n)O(n)O(1)稳定插入排序希尔排序…

webrtc-internals调试工具

Google 的 Chrome&#xff08;87 或更高版本&#xff09;WebRTC 内部工具是一套内置于 Chrome 浏览器中的调试工具; webrtc-internals 能够查看有关视频和音频轨道、使用的编解码器以及流的一般质量的详细信息。这些知识对于解决音频和视频质量差的问题非常有帮助。 webrtc-int…

VS Code中怎样查看某分支的提交历史记录

VsCode中无法直接查看某分支的提交记录&#xff0c;需借助插件才行&#xff0c;常见的插件如果git history只能查看某页面的改动记录&#xff0c;无法查看某分支的整体提交记录&#xff0c;我们可以安装GIT Graph插件来解决这个问题 1.在 VSCode的插件库中搜索 GIT Graph安装&a…

超详细!一文搞定PID!嵌入式STM32-PID位置环和速度环

本文目录 一、知识点1. PID是什么&#xff1f;2. 积分限幅--用于限制无限累加的积分项3. 输出值限幅--用于任何pid的输出4. PID工程 二、各类PID1. 位置式PID&#xff08;用于位置环&#xff09;&#xff08;1&#xff09;公式&#xff08;2&#xff09;代码使用代码 2. 增量式…

学习solid works第八课------工程图

一、新建工程图 工程图创建不像零件和装配体一样直接点击新建&#xff0c;工程图跟零件的关联在一起的&#xff0c;我们需要需要先打开零件&#xff0c;在零件中建立对应的工程图。 1. 打开需要做工程图的零件&#xff08;以一颗螺丝为例子&#xff09;。 2. 在文件下拉菜单中…

Python 爬虫

一、创建项目 1.双击打开pycharm&#xff0c;点击新建项目 2.项目设置- 勾选[继承全局站点软件包]- 勾选[可用于所有项目]- 取消勾选[创建main.py欢迎脚本]- 点击创建 3.项目名称右键--新建--python文件 4.输入文件名--回车二、编辑代码 # 导入请求模块 import requests # 如…

Azure Function 解决跨域问题

这边前端call本地部署的azure function出现了跨域问题&#xff0c;搜索一下解决方案 直接修改local.setting.json&#xff0c;在其中添加CORS配置为通配符”*”&#xff0c;就行了 local.settings.json {"IsEncrypted": false,"Values": {"PYTHON_E…

【Unity】手把手入门2D游戏开发教程——小狐狸的冒险(上)

‍ 前言&#xff1a;本文章教程&#xff0c;结合Unity官方教程和网上其他资源教程进行整合&#xff0c;目的是让大家可以更快速地上手&#xff0c;减少大家观看比较理论的教程或者视频时长偏长的教程的时间。‍‍‍‍‍ 本文章参考了以下有关文献或内容&#xff1a; SIKI视频教…

Chapter 03 复合数据类型-1

1.列表 Python内置的一种有序、可变的序列数据类型&#xff1b; 列表的定义&#xff1a; [ ]括起来的逗号分隔的多个元素组成的序列 列表对象的创建&#xff1a; &#xff08;1&#xff09;直接赋值 >>> list1 []#创建一个空列表赋值给list1 >>> list…

【Webug】攻防实战详情

世界上只有一种真正的英雄主义&#xff0c;那就是认清了生活的真相后&#xff0c;仍然热爱她 显错注入 首先整体浏览网站 注入点&#xff1a; control/sqlinject/manifest_error.php?id1 判断注入类型 输入: and 11 正常, 再输入: and 12 还正常, 排除数字型 输入单引号:…

Linux day1204

五.安装lrzsz lrzsz 是用于在 Linux 系统中文件上传下载的软件。大家可能会存在疑问&#xff0c;我们用 MobaXterm 图形化界面就可以很方便的完成上传下载&#xff0c;为什么还要使用这个软件来 完成上传下载呢&#xff1f;实际上是这样的&#xff0c; Linux 的远程连接工具…