Hi,
in Liedtexten nutze ich das Zeichen
|
als Taktstrich.Nun möchte ich alle
|
rot einfärben. Mit css funktioniert es so nicht:p[|] { color: #f00; }
[] ist für Attributselektoren. | ist kein Attribut.
document.getElementsByTagName( "body" )[0].innerHTML = document.getElementsByTagName( "body" )[0].innerHTML.replace(/|/g, "<b class=crot>|</b>");
replace(/|/g,
sagt: ersetze nichts ODER nichts, sooft es vorkommt. Das |
ist im Regex das ODER.
|
hat eine Sonderbedeutung im regulären Ausdruck - wenn Du wirklich das Zeichen |
finden (und ersetzen) willst, mußt Du es im Regex escapen. Also /\|/g
Seltsamer Effekt: Dieser js-code fügt zwischen Zeichen den roten Taktstrich ein, wobei die HTML-Angaben zerstört werden:
Das ist kein seltsamer Effekt, das ist das erwartete Verhalten. "Nichts" findet sich jeweils zwischen zwei Zeichen, und dieses "Nichts" wolltest Du ja durch <b class=crot>|</b>
ersetzt haben. Daß das auch zwischen den Zeichen der Tags passiert, ist logisch, Du bearbeitest ja innerHTML.
cu,
Andreas a/k/a MudGuard