2010-02-06 7 views
5

Mi piacerebbe conoscere il modo più conveniente per racchiudere alcune parole specificate con tag span.Includi alcune parole specificate con estensione in jQuery?

Esempio: Ho una parola, che è un cane. Ecco il testo originale:

I have a dog, do you have a dog? 

e l'uscita dovrebbe essere simile a questo:

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

Qualsiasi aiuto?

MODIFICA: Nota, che dovrebbe anche racchiudere le parole, anche se non sono inviduali (Peter-dog). Spero tu abbia capito.

+1

si prega di quando si fanno domande, evitare di limitare il titolo ad una soluzione jQuery, jQuery non è un linguaggio, JS è, quindi la soluzione deve essere in Javascript. – vsync

risposta

3

Ecco un utile jQuery plugin.

È davvero facile da usare e funziona benissimo.

modifica — questa è una mia risposta molto vecchia. Mi dispiace aver semplicemente collegato la libreria Lettering.js senza includere il suo nome. La libreria è utile, anche se non sono sicuro che qui 7 anni dopo il signor Rupert continui a mantenerlo attivamente.

Ciò che Lettering fa è passare attraverso i nodi di testo in una regione selezionata del DOM e avvolgere le singole lettere e/o parole (configurabili) nei tag <span> che possono quindi essere stilizzati. È semplice ma efficace. Anche se non vuoi usarlo, il codice non è molto esteso ed è istruttivo.

+1

Non c'è bisogno di usare tinyurl su StackOverflow, ecco a cosa serve Markdown. –

+0

Grazie, facile da usare! –

4

È possibile utilizzare JavaScript replace function. Ecco un esempio di base:

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

.val() dovrebbe funzionare solo sugli elementi del modulo. Hai bisogno di .text() qui - se non ho sbagliato atm. – onigunn

+0

non hai torto - questa risposta non funzionerà in realtà data la domanda originale, che riguarda le parole nel testo in esecuzione, non negli elementi del modulo. Anche allora, mettere i tag span all'interno dei valori degli elementi form non funzionerebbe comunque. – Pointy

+1

In realtà, è html(). Codice fisso e testato. –

Problemi correlati