当前位置: 首页 > news >正文

【JavaScript】在指定dom元素前面创建标签元素

一、基础操作过程

要在指定的DOM元素前面创建标签元素,有以下步骤:

  1. 获取指定的DOM元素:使用document.querySelector()document.getElementById()等方法来获取指定的DOM元素。
const targetElement = document.querySelector('#targetElementId');
  1. 创建新的标签元素:使用document.createElement()方法创建一个新的标签元素。
const newElement = document.createElement('div');
  1. 设置新元素的属性:根据需要设置新元素的属性,例如设置文本内容、样式等。
newElement.textContent = '这是一个新的标签元素';
newElement.style.color = 'red';
  1. 将新元素插入到目标元素前面:使用insertBefore()方法将新元素插入到目标元素的前面。
targetElement.parentNode.insertBefore(newElement, targetElement);

核心代码示例:

const targetElement = document.querySelector('#targetElementId');
const newElement = document.createElement('div');
newElement.textContent = '这是一个新的标签元素';
newElement.style.color = 'red';
targetElement.parentNode.insertBefore(newElement, targetElement);

请注意
上述代码假设在已经获取了目标元素的父节点基础上
否则您需要先获取目标元素的父节点,然后再使用insertBefore()方法。


二、封装示例

html:

<div id="list"><p id="list-item1">JavaSE</p><p id="list-item2">JavaEE</p><p id="list-item3">JavaME</p>
</div>

js:

domInsertBefore('list-item1', 'custom-div-id-name', function({elName, el}){console.log('elName', elName);console.log('el', el)
},'div')

执行:
在这里插入图片描述
在这里插入图片描述


三、封装代码

/*** 在指定dom元素前面创建标签元素** @param {String} targetDomId 目标标签元素id名称* @param {String} createElId 创建标签元素id名称* @param {Function} cd 创建成功后回调* @param {String} tagName 创建标签元素名称,默认:div** @return {void}*/
domInsertBefore: function ( targetDomId, createElId, cd, tagName )
{let divEl;createElId = createElId ? createElId : 'emitso';tagName = tagName ? tagName : 'div';if (!(divEl = document.getElementById(createElId))) {divEl = document.createElement(tagName)divEl.id = createElId}let dpEl = document.getElementById(targetDomId)if (!dpEl) returndpEl.parentNode.insertBefore(divEl, dpEl?.previousElementSibling || dpEl)if (cd) {cd.call(this, {elName: createElId,el: document.getElementById(createElId),})}
}
http://www.lryc.cn/news/158721.html

相关文章:

  • ARMv8 TTBRx寄存器
  • C51智能小车(循迹、跟随、避障、测速、蓝牙、wifie、4g、语音识别)总结
  • 回归预测 | MATLAB实现PCA-BP主成分降维结合BP神经网络多输入单输出回归预测
  • Kubernetes(k8s)部署高可用多主多从的Redis集群
  • 算法专题:前缀和
  • bs4库爬取天气预报
  • l8-d8 TCP并发实现
  • 编写中间件以用于 Express 应用程序
  • 【2023年数学建模国赛】D题解题思路
  • python爬虫之正则表达式学习
  • 智慧能源方案:TSINGSEE青犀AI算法中台在能源行业的应用
  • 达梦数据库awr报告收集
  • c语言练习43:深入理解strcmp
  • NUC980webServer开发
  • 驱动开发--day2
  • 用户促活留存新方式——在APP中嵌入小游戏
  • MySQL 8.0.34(x64)安装笔记
  • 物流供应商实现供应链自动化的3种方法
  • Mysql更新时间列只改日期为指定日期不更改时间
  • 实时测试工具 Visual Studio 扩展 NCrunch 4.18 Crack
  • Neo4j 基本语法
  • docker常见面试题
  • 静态路由:配置和使用详解
  • 玩转Mysql系列 - 第15篇:详解视图
  • 0065__git fetch, git pull, git merge, git rebase
  • AJAX学习笔记4解决乱码问题
  • 【23种设计模式】享元模式【⭐】
  • 语音信号的仿真原理
  • VLDB 2023 | CDSBen: 字节跳动 veDB 数据库存储系统性能测试模型
  • crontab的配置参数和基础使用教程