简体   繁体   English

如何使用Java脚本替换HTML页面中所有出现的字符串

[英]How to replace all occurrences of a string in a HTML page using Javascript

I know this question may be asked before but I did not find the correct answer that works. 我知道之前可能会问过这个问题,但是我没有找到正确的答案。

I tried this code 我尝试了这段代码

$('body *').each(function(k,v){$(v).text($(v).text().replace("Hazem","mizzo"))});

but the page crashes, I don't know why. 但是页面崩溃了,我不知道为什么。

I'm prefer the code to be in pure javascript not jQuery. 我更喜欢将代码使用纯JavaScript而不是jQuery。 Thanks. 谢谢。

You should walk the DOM, find text nodes, and replace the found text in each. 您应该遍历DOM,查找文本节点,并替换每个节点中的找到的文本。

Here's a simple example. 这是一个简单的例子。 You can make walkText() more generic by passing a callback that does the replacement. 您可以通过传递进行替换的回调使walkText()更通用。

 function walkText(node) { if (node.nodeType == 3) { node.data = node.data.replace(/foo/g, "bar"); } if (node.nodeType == 1 && node.nodeName != "SCRIPT") { for (var i = 0; i < node.childNodes.length; i++) { walkText(node.childNodes[i]); } } } walkText(document.body); 
 foo <b>foo</b> foo 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM