# Bestimmte Zeichen mit jQuery ersetzen



## DiDiJo (16. April 2012)

Hi Leute,

ich habe eine Kundenhomepage aufgebaut und nun soll jedes "&" Zeichen durch ein "&" in einer anderen Schriftart dargestellt werden (unhabhängig um Element wo das "&" drin stehen könnte).

Ich habe kurz gegoogelt und habe dann folgenden Code gefunden, der meiner Meinung nach funktionieren sollte, es aber leider nicht tut:

```
$("&amp;").replaceWith("<span class='specialFont'>&amp;</span>");
```

Ich möchte also alle normalen "&" durch ein speical-Font-& ersetzen.  Wo steckt der Fehler in meiner Anweisung ?!


mfg Daniel


----------



## chmee (16. April 2012)

Die jQuery-Funktion $() sucht/findet DOM-Objekte, keine Zeichen des HTML-Inhalts. jQuery kann Dir beim Abarbeiten der Objekte behilflich sein, die Ersetzung passiert mit einfachem Javascript

http://www.jquery4u.com/dom-modification/jquery-find-replace-characters-loop/


> jQuery('html').each(function(i){ jQuery(this).text(jQuery(this).text().replace('&amp;','<span class='specialFont'>&amp;</span>'))})



Vielleicht geht es auch mit dem Universal-Selector $('*')

mfg chmee


----------



## DiDiJo (16. April 2012)

Mkay .... ich proier das mal aus.

Ich habe mich auf die offizielle Doku verlassen und habe da folgenden Absatz gefunden:


> As of jQuery 1.4, .replaceWith() can also work on disconnected DOM nodes. For example, with the following code, .replaceWith() returns a jQuery set containing only a paragraph.:
> 
> $("<div/>").replaceWith("<p></p>");



Ich habe gedacht ich könnte so nach beliebiges Zeichen suchen.


Wenn ich das "jQuery Find and Replace Characters Loop" Beispiel ausprobiere, sieht die Webseite so aus, als wäre sämtlicher Inhalt als Plain-Text ins HTML-Tag geschrieben (zumindest interpretiert das so der Firebug). 

Einen Testlink darf ich lkeider nicht öffentlich setzten ... gibbét nur auf anfrage


----------



## chmee (16. April 2012)

http://jsfiddle.net/NBcmZ/8/

Hier erstmal ein Beispiel für beide Fälle. Und man sieht, was Du beschrieben hast, die html-tags werden plain eingetragen. Daran hab ich vorhin nicht gedacht. Da ich mit einer anderen Arbeit weitermachen muß, hoffe ich, dass gleich der Nächste eine passende Lösung liefern kann.

Es müsste "richtig" in die DOM eingetragen werden..

mfg chmee


----------



## DiDiJo (16. April 2012)

Ansich klappt so das Skript. Allerdings wird nun der Text mit htmlentities in den Code eingetragen. Also so: 
	
	
	



```
&lt;span class="specialFont"&gt;&amp;&lt;/span&gt;
```

das ist doch bestimmt irgendwie zu fixen ...


----------

