Ich habe irgendwo auf der Website einen bestimmten Text, sagen wir "Lollypops", und ich möchte alle Vorkommen dieser Zeichenfolge durch "Marshmellows" ersetzen. Das Problem ist, dass ich nicht weiß, wo genau der Text ist. Ich weiß, ich könnte so etwas tun:
$(body).html($(body).html().replace('lollypops', 'marshmellows'));
Dies würde wahrscheinlich funktionieren, aber ich muss so wenig HTML wie möglich neu schreiben, also denke ich an etwas wie:
- Suche nach der Zeichenfolge
- Suchen Sie das nächstgelegene übergeordnete Element
- Schreiben Sie nur das nächstgelegene übergeordnete Element neu
- Ersetzen Sie dies auch in Attributen, aber nicht in allen, z. B. in
class
, aber nicht insrc
Zum Beispiel hätte ich eine solche Struktur
<body>
<div>
<div>
<p>
<h1>
<a>lollypops</a>
</h1>
</p>
<span>lollypops</span>
</div>
</div>
<p>
<span class="lollypops">Hello, World!</span>
<img src="/lollypops.jpg" alt="Cool image" />
</p>
<body>
In diesem Beispiel würde jedes Auftreten von "Lollypops" ersetzt, nur <img src="...
würde gleich bleiben und die einzigen Elemente, die tatsächlich manipuliert würden, wären <a>
und beide <span>
s.
Weiß jemand, wie man das macht?
javascript
jquery
jquery-selectors
Chiffre
quelle
quelle
Antworten:
Sie könnten so etwas tun:
Es ist besser, alle Tags mit Text zu markieren, der mit einem geeigneten Klassennamen untersucht werden muss.
Dies kann auch zu Leistungsproblemen führen. jQuery oder Javascript sind im Allgemeinen für diese Art von Operationen nicht wirklich geeignet. Sie sind besser dran, es serverseitig zu tun.
quelle
<span>
, es kann in sein<h4>
und so weiter ...Sie könnten etwas auf diese Weise tun:
Beispiel: http://jsfiddle.net/steweb/MhQZD/
quelle
Unten ist der Code, mit dem ich Text durch farbigen Text ersetzt habe. Es ist einfach, den Text zu nehmen und ihn innerhalb eines
HTML
Tags zu ersetzen . Es funktioniert für jedes Wort in diesen Klassen-Tags.quelle
quelle
Sie könnten so etwas tun:
HTML
jQuery
quelle
Warum fügen Sie dem Zeichenfolgencontainer einfach keine Klasse hinzu und ersetzen dann den inneren Text? Genau wie in diesem Beispiel.
HTML:
jQuery:
quelle