Javascript 替换html中的所有单词而不影响标记

Javascript 替换html中的所有单词而不影响标记,javascript,html,dom,Javascript,Html,Dom,我正在寻找一种方法,将Foo的所有实例替换为)不起作用,因为它将a标记显示为文本,而不是创建DOM元素 尝试解决textNodes问题,然后转到父元素并应用.replace,在那里只会生成与第一个项目符号相同的问题 我搜索了其他类似问题的答案,但没有找到解决这三个问题的答案。很接近,但需要用一组三个新节点替换整个文本节点: 包含“字符串之前的所有内容”的textnode 为您想要的标记创建一个HTML节点(除非它是实际链接,否则不要使用),然后 另一个包含所有剩余文本的textnode 当然,

我正在寻找一种方法,将
Foo
的所有实例替换为
)不起作用,因为它将
a
标记显示为文本,而不是创建DOM元素
  • 尝试解决textNodes问题,然后转到父元素并应用
    .replace
    ,在那里只会生成与第一个项目符号相同的问题

  • 我搜索了其他类似问题的答案,但没有找到解决这三个问题的答案。

    很接近,但需要用一组三个新节点替换整个文本节点:

  • 包含“字符串之前的所有内容”的textnode
  • 为您想要的标记创建一个HTML节点(除非它是实际链接,否则不要使用
    ),然后
  • 另一个包含所有剩余文本的textnode
  • 当然,剩下的文本节点现在是尚未处理的文本节点集的一部分


    (除非您对术语进行
    拆分
    ,然后根据需要交错多个附加节点。然后您只需逐个运行textnodes,而无需将“剩余部分”放回堆栈)

    是否要动态执行此操作?@Mr。在这种情况下,动态是什么意思?要替换的字符串和替换应该能够由函数指定,但这始终可以通过
    new RegExp
    来完成。有很多方法可以做到这一点-在客户端、服务器端,或者在提供服务之前进行预处理。你对哪种方法感兴趣?@客户先生,谢谢!您能否具体说明如何实施第2点?这些更换将发生相当多,所以我有点担心的效率。我的第一个想法是只制作一个正则表达式(不带'g'标记),然后循环直到没有更多的匹配项。我想知道您是否知道有任何“全局”方法可以同时执行所有这些操作(如
    。将
    替换为“g”标记)。“在什么上运行正则表达式?”因为您只能在字符串上运行正则表达式,而且您肯定希望它能够工作。因此,如果您想正确地执行此操作,就必须遍历DOM并使用诸如和之类的函数。但是,对于任何使用React或类似工具的网页,您也肯定会在这方面失败。(因为与标准网页不同,在React中,DOM是权限,在React等中,DOM没有权限,任何UI更新都只会将您替换的数据放回原位)