我正在寻找一种在给定网站中将Foo
的所有实例替换为<a>Bar</a>
(有效链接)的方法。理想情况下,不需要任何像jquery这样的额外库。
我尝试过的事情:
document.body.innerHtml
和类似的内容(document.getElementByTagName('p)
)不能与简单的.replace(/Foo/g, '<a>Bar</a>')
一起使用,因为它可能最终会替换Foo
类名或id,因此会中断这页纸。也可能会影响体内的某些js脚本。a
标签显示为文本,而不是创建DOM元素。.replace
只会产生与第一个项目符号相同的问题。我一直在寻找其他类似问题的答案,但没有找到能解决这三点的方法。
答案 0 :(得分:2)
您已经关闭,但是需要用三个新节点的 set 替换整个文本节点:
<a>
),然后然后,当然,剩下的textnode现在是尚未处理的文本节点集的一部分。
(除非您为自己的任期做一个split
,然后根据需要交织尽可能多的附加节点。然后您只需要一个接一个地遍历textnode,而不必将“其余”放回堆栈中)