原生:示例代码

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,前提是不能去掉标签和已绑定的事件的更多相关文章

  1. 最近学习工作流 推荐一个activiti 的教程文档

    全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...

  2. [.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office

    打造一个很简单的文档转换器 - 使用组件 Spire.Office [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6024827.html 序 之前,& ...

  3. (亲测解决)每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档

    版权声明:本文为博主原创文章,转载请注明出处! https://blog.csdn.net/sinat_34104446/article/details/80210424 一.问题描述每次打开Exce ...

  4. GitBook一个专注于帮助文档的工具

    官网:https://www.gitbook.com GitHub组织:https://github.com/gitbookio GitBook一个专注于帮助文档的工具,比如: 1.简单的左侧列表右侧 ...

  5. elasticsearch _create api创建一个不存在的文档

    https://www.elastic.co/guide/cn/elasticsearch/guide/current/create-doc.html当我们索引一个文档, 怎么确认我们正在创建一个完全 ...

  6. 如何使用 VuePress 搭建一个 element-ui 风格的文档网站

    如何使用 VuePress 搭建一个 element-ui 风格的文档网站 { "devDependencies": { "vuepress": "1 ...

  7. 【转】Jsduck一个纯净的前端文档生成神器

    让前端程序更具可维护性,是一个老生常谈的问题,大多数时候我们都关注于应用层面的代码可维护性,如:OO.模块化.MVC,编码规范.可扩展和复用性,但这都是属于设计层面需要考虑的事情,可维护性还应包含另一 ...

  8. Go.js 没有中文文档 也没有中文demo 学起来很费劲 给大家整理一个算是详细的文档

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  9. 一个完整的WSDL文档及各标签详解

    <?xml version="1.0" encoding="UTF8" ?> <wsdl:definitions targetNamespac ...

  10. 一个最简html5文档来说明html5的新特性和写法

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8&quo ...

随机推荐

  1. Python伪数据生成器Mimesis 使用

    一.**Mimesis的介绍** Mimesis是一个用于Python的high-performance伪数据生成器,它用各种语言为各种目的提供数据.这些假数据可以用来填充测试数据库,创建假API端点 ...

  2. 恶意软件开发(四)通过查找进程名进行DLL注入

    通过进程名查找PID 当我们编写注入器的时候,肯定是希望直接通过进程名进行注入,而不是像上一篇笔记一样通过手动输入PID进行查找. 通过进程名查找PID的步骤如下: (1)创建系统中所有进程的快照 ( ...

  3. FPGA模块化设计

    模块化设计出发点 在实际地操作中,总有一些基础的模块需要不断地寻找,往往需要消耗大量的时间.为了节约模块化设计的时间,提高设计的效率.在这里将一些基础的模块全部进行封装,利用网络的便捷性,实现快速地基 ...

  4. java通过jsch使用sftp连接linux处理文件

    1.Maven依赖 <!--Java连接Linux服务器依赖--> <dependency> <groupId>com.jcraft</groupId> ...

  5. oracle_fdw扩展使用中异常问题

    Oracle_fdw 的使用介绍已经在之前的文章中介绍过了,具体见:https://www.cnblogs.com/kingbase/p/14846479.html. 本篇文章介绍一下可能碰到的问题处 ...

  6. kingbase ES 关于NULL及其相关函数

    文章概要: 本文对主要就NULL值及其相关处理函数进行讨论,同时也介绍了ora_input_emptystr_isnull参数 一,关于NULL值 1,sql中的null值 null 值代表未知数据, ...

  7. KingbaseES V8R3数据库运维案例之---不完整的启动包(incomplete startup packet)复现

    案例说明: 在KingbaseES V8R3数据库的sys_log日志中,出现以下故障信息"不完整的启动包(incomplete startup packet)"日志信息.本案例复 ...

  8. jsonb操作符

    json类型以文本方式存储json对象,把输入的数据原封不动的存放到数据库中,会保留多余的空格,保留重复的Key,保留Key的顺序. jsonb类型转换文本格式json对象为二进制格式,不保留多余的空 ...

  9. 如何保证MySQL和Redis数据一致性?

    背景 在高并发的业务场景中,因为MySQL数据库是操作磁盘效率比较低,因此大多数情况下数据库都是高并发系统的瓶颈.因为Redis操作数据是在内存中进行,所以就需要使用Redis做一个缓存.让请求先访问 ...

  10. 鸿蒙HarmonyOS实战-ArkUI组件(Button)

    一.Button Button(按钮)是一种常见的用户界面控件,通常用于触发操作或提交数据.Button 拥有文本标签和一个可点击的区域,用户点击该区域即可触发相应的操作或事件. Button 的主要 ...