innerHTML.replace - Syntax

funkyvino

Mitglied
Hallo,

nachdem ich weder in den Foren, noch den Tutorials etwas zu diesem Problem fand, hoffe ich, jemand von Euch kann mir auf die Sprünge helfen.
Ich möchte mich mit der JS-Funktion innerHTML.replace aller Backslashes im HTML-String entledigen, da ein übergebener String wie
HTML:
<span style=\"font-weight: bold;\">Text</span>
nach auslesen aus einer DB mittels PHP nicht interpretiert wird, der String
HTML:
<span style='font-weight: bold;'>Text</span>
dagegen schon.

Mein Ansatz wäre:

innerHTML.replace(/\\"/g,"''");

funktioniert natürlich nicht, am String änderte sich gar nix. Wo liegt der Denkfehler? Hat jemand eine Idee?

Vielen Dank!
 
Naja ich könnte mir vorstellen, dass du dir die replace-Funktion falsch vorstellst. Die gibt nämlich nur einen geänderten String zurück, ändert aber nichts an der ursprünglichen Quelle.

Sprich bei sowas:
HTML:
<div id="blubb">Teeeeext</div>

<script type="text/javascript">
document.onclick = function() {
    document.getElementById('blubb').innerHTML.replace(/Te+/g,'Te');
}
</script>
wird der Inhalt von dem div nicht in "Text" geänder, sondern replace gibt nur "Text" zurück und der Rückgabewert verschwindet ohne Zuweisung oder Funktionsargument ins Nirvana.

In dem Fäll müsstest du einfach nur den Rückgabewert deinem div als innerHTML zuweisen. Etwa so:
HTML:
<div id="blubb">Teeeeext</div>

<script type="text/javascript">
document.onclick = function() {
     document.getElementById('blubb').innerHTML = document.getElementById('blubb').innerHTML.replace(/Te+/g,'Te');
}
</script>

Ohne deinen genauen Code kann ich das aber nur vermuten. War einfach mal wild geraten.
 

Neue Beiträge

Zurück