Die folgende Funktion funktioniert perfekt für mich:
// Note this *is* JQuery, see below for JS solution instead
function replaceText(selector, text, newText, flags) {
var matcher = new RegExp(text, flags);
$(selector).each(function () {
var $this = $(this);
if (!$this.children().length)
$this.text($this.text().replace(matcher, newText));
});
}
Hier ist ein Anwendungsbeispiel:
function replaceAllText() {
replaceText('*', 'hello', 'hi', 'g');
}
$(document).ready(replaceAllText);
$('html').ajaxStop(replaceAllText);
Sie können auch einen direkten Ersatz verwenden, wie folgt:
document.body.innerHTML = document.body.innerHTML.replace('hello', 'hi');
Aber seien Sie vorsichtig damit, da dies auch die Tags, CSS und Skripte beeinflussen kann.
BEARBEITEN:
Verwenden Sie für eine reine JavaScript-Lösung stattdessen diese Methode:
function replaceText(selector, text, newText, flags) {
var matcher = new RegExp(text, flags);
var elems = document.querySelectorAll(selector), i;
for (i = 0; i < elems.length; i++)
if (!elems[i].childNodes.length)
elems[i].innerHTML = elems[i].innerHTML.replace(matcher, newText);
}