2010-02-06 8 views
5

Ich würde gerne wissen, die bequemste Möglichkeit, bestimmte Wörter mit Span-Tags zu umhüllen.Umgeben Sie einige angegebene Wörter mit span in jQuery?

Beispiel: Ich habe ein Wort, das ist Hund. Hier ist der Originaltext:

I have a dog, do you have a dog? 

Und Ausgabe wie folgt sein sollte:

I have a <span class="highlight">dog</span>, do you have a <span class="highlight">dog</span>? 

Jede Hilfe?

BEARBEITEN: Beachten Sie, dass es auch Wörter einpacken soll, auch wenn sie nicht individuell sind (Peter-Hund). Ich hoffe du hast es verstanden.

+1

bitte bei Fragen, unterlassen Sie Ihren Titel auf eine jQuery Lösung zu begrenzen, jQuery ist keine Sprache, JS ist, so sollte die Lösung in der JavaScript. – vsync

Antwort

3

Hier ist eine nützliche jQuery plugin.

Es ist wirklich einfach zu bedienen und es funktioniert super.

bearbeiten — das ist eine sehr alte antwort von mir. Ich bedaure, dass ich einfach die Lettering.js-Bibliothek verlinkt habe, ohne ihren Namen anzugeben. Die Bibliothek ist nützlich, obwohl ich hier 7 Jahre später nicht sicher bin, ob Herr Rupert es weiterhin aktiv pflegt.

Die Beschriftung erfolgt durch die Textknoten in einer ausgewählten Region des DOM und umschließt die einzelnen Buchstaben und/oder Wörter (konfigurierbar) in <span> Tags, die dann formatiert werden können. Es ist einfach, aber effektiv. Selbst wenn Sie es nicht verwenden möchten, ist der Code nicht sehr umfangreich und es ist lehrreich.

+1

Es ist nicht notwendig, tinyurl auf StackOverflow zu verwenden, dafür steht Markdown. –

+0

Danke, einfach zu bedienen! –

4

Sie können die JavaScript replace function verwenden. Hier ist ein einfaches Beispiel:

$('#container').html($('#container').html().replace(/(dog)/g,'<span class="highlight">$1</span>')); 
+0

.val() sollte nur mit Formularelementen arbeiten. Du brauchst .text() hier - wenn ich nicht falsch bin. – onigunn

+0

Sie sind nicht falsch - diese Antwort wird nicht wirklich funktionieren angesichts der ursprünglichen Frage, die über Wörter im laufenden Text, nicht in Formelementen ist. Selbst dann würde das Einfügen von span-Tags in Formularelementwerte sowieso nicht funktionieren. – Pointy

+1

Eigentlich ist es html(). Code festgelegt und getestet. –

Verwandte Themen