[GPT] 对于一个复杂的html文档而言,如何用 js 批量替换页面上的某些文字从A替换为B,前提是不能去掉标签和已绑定的事件

原生:示例代码
function replaceTextInDocument(node) {
if (node.nodeType === Node.TEXT_NODE) {
node.textContent = node.textContent.replace(/A/g, 'B');
} else if (node.nodeType === Node.ELEMENT_NODE) {
for (var i = 0; i < node.childNodes.length; i++) {
replaceTextInDocument(node.childNodes[i]);
}
}
}
replaceTextInDocument(document.body);
上述代码定义了一个 replaceTextInDocument 函数,它接收一个节点作为参数。
如果节点是文本节点,则使用正则表达式替换文本内容。
如果节点是元素节点,则递归遍历其所有子节点,并对每个子节点调用 replaceTextInDocument 函数。
最后,我们可以调用 replaceTextInDocument 函数并将 document.body 作为参数,以替换整个页面上的文本内容。
这样就可以批量替换 HTML 页面中的某些文字,而不会影响标签和已绑定的事件。
jQuery实现:示例代码
function replaceTextInDocument($element) {
$element.contents().each(function() {
if (this.nodeType === Node.TEXT_NODE) {
this.nodeValue = this.nodeValue.replace(/A/g, 'B');
} else if (this.nodeType === Node.ELEMENT_NODE) {
replaceTextInDocument($(this));
}
});
}
replaceTextInDocument($('#myContainer'));
在上面的代码中,我们定义了replaceTextInDocument函数,该函数将jQuery元素作为参数。
我们使用.contents()方法来获取元素的所有子节点。
然后,我们使用.each()方法对每个节点进行迭代。
如果节点是一个文本节点,我们将使用.nodeValue属性替换文本内容。
如果该节点是一个元素节点,我们会递归地调用该元素的replaceTextInDocument函数。
最后,你可以使用所需容器元素(如$('#myContainer'))的jQuery选择器调用replaceTextInDocument函数,以执行批量文本替换。
这个jQuery实现实现了与前面的JavaScript代码相同的结果,允许你在不影响标记和事件绑定的情况下将复杂HTML文档中的某些单词从A替换为B。
Cool:ChatAI
Link:https://www.cnblogs.com/farwish/p/17545542.html
[GPT] 对于一个复杂的html文档而言,如何用 js 批量替换页面上的某些文字从A替换为B,前提是不能去掉标签和已绑定的事件的更多相关文章
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- [.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office
打造一个很简单的文档转换器 - 使用组件 Spire.Office [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6024827.html 序 之前,& ...
- (亲测解决)每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档
版权声明:本文为博主原创文章,转载请注明出处! https://blog.csdn.net/sinat_34104446/article/details/80210424 一.问题描述每次打开Exce ...
- GitBook一个专注于帮助文档的工具
官网:https://www.gitbook.com GitHub组织:https://github.com/gitbookio GitBook一个专注于帮助文档的工具,比如: 1.简单的左侧列表右侧 ...
- elasticsearch _create api创建一个不存在的文档
https://www.elastic.co/guide/cn/elasticsearch/guide/current/create-doc.html当我们索引一个文档, 怎么确认我们正在创建一个完全 ...
- 如何使用 VuePress 搭建一个 element-ui 风格的文档网站
如何使用 VuePress 搭建一个 element-ui 风格的文档网站 { "devDependencies": { "vuepress": "1 ...
- 【转】Jsduck一个纯净的前端文档生成神器
让前端程序更具可维护性,是一个老生常谈的问题,大多数时候我们都关注于应用层面的代码可维护性,如:OO.模块化.MVC,编码规范.可扩展和复用性,但这都是属于设计层面需要考虑的事情,可维护性还应包含另一 ...
- Go.js 没有中文文档 也没有中文demo 学起来很费劲 给大家整理一个算是详细的文档
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- 一个完整的WSDL文档及各标签详解
<?xml version="1.0" encoding="UTF8" ?> <wsdl:definitions targetNamespac ...
- 一个最简html5文档来说明html5的新特性和写法
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8&quo ...
随机推荐
- 腾讯Linux 运维工程师面试真题
腾讯Linux 运维工程师面试真题 1. 如何防止 DDOS 攻击?如提供足够资源给你,要保证用户访问不影响. 首先确定攻击源范围,如果是处于公司内部,那么暂时性的将这一区域的内部网络封掉,如 果是外 ...
- tomcat正常启动,但网页拒绝连接的解决方法
当发生拒绝连接的时候 1.首先要排除端口的占用 上一篇文章已经详细介绍了,这里不再赘述tomcat端口配置 2.设置防火墙放行tomcat 3.配置环境变量 此电脑→属性→高级系统设置→环境变量 点击 ...
- 如何从容的打包上传图片对象--File,Blob,BASE64详解及转换方法
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 File() File() 构造器创建新的 File 对象实例. 语法 var myFile = new File(bits, name[ ...
- Prompt进阶系列4:LangGPT(构建高性能Prompt实践指南)--结构化Prompt
Prompt进阶系列4:LangGPT(构建高性能Prompt实践指南)--结构化Prompt 1.结构化 Prompt简介 结构化的思想很普遍,结构化内容也很普遍,我们日常写作的文章,看到的书籍都在 ...
- .NET Emit 入门教程:第六部分:IL 指令:1:概要介绍
前言: 在之前的文章中,我们完成了前面五个部分的内容学习,包括: 第一部分:Emit介绍 第二部分:构建动态程序集 第三部分:构建模块(Module) 第四部分:构建类型(Type) 第五部分:动态生 ...
- java实战字符串1:给定两个字符串 s 和 t,判断他们的编辑距离是否为 1。
题目描述给定两个字符串 s 和 t,判断他们的间距是否为 1.(满足以下三个条件) 往 s 中插入一个字符得到 t从 s 中删除一个字符得到 t在 s 中替换一个字符得到 t 例1 输入: ab ac ...
- Linux是什么与如何学习
重点回顾 操作系统(Operation System) 主要在管理与驱动硬件,因此必须要能够管理内存.管理装置. 负责行程管理以及系统呼叫等等.因此,只要能够让硬件准备妥当(Ready)的情况, 就是 ...
- DevSecOps 中的漏洞管理(下)
建立漏洞管理程序以支持DevSecOps 在讨论DevSecOps及DevOps模型中包含安全性的重要性时,建立有效的漏洞管理实践是非常重要的.这可以通过将漏洞管理设置为程序来实现. 我们可以开始对I ...
- #贪心#CF605A Sorting Railway Cars
题目 一个长度为 \(n\) 的排列,每次可以将一个数移至开头或者结尾,问最少多少次使其升序排列 分析 让数字连续的情况尽量多才能让移出来的次数尽量少, 找到最长的数字连续段,若其长度为 \(len\ ...
- #数学期望,高斯消元#洛谷 3232 [HNOI2013]游走
题目 分析 如果计算出边的期望经过次数那就可以算出来答案 首先转换成点的期望经过次数,设\(dp[x]\)表示点\(x\)的期望经过次数 那么\(dp[x]=\sum_{y\in son}\frac{ ...