2012-05-04 13 views

risposta

5

Questo cercherà voi tutta DOM e sostituire ogni Rox con <span>Rox</span>:

$(':contains("Rox")').html(function(index, oldHTML) { 
    return oldHTML.replace(/(Rox)/g, '<span>$&</span>'); 
});​ 

Live DEMO

+0

Ho ottenuto anche il token imprevisto ILLEGAL :( – PhoxKiD

+0

@gdoron Sto ottenendo alcuni risultati strani - potrebbe essere colpa di jsbin. – Sampson

+1

@gdoron Ho appena provato tutto in jsfiddle e ha funzionato bene. Bontà, jsbin mi ha fatto impazzire per un momento lì. – Sampson

5

In questo caso, è possibile utilizzare il metodo JavaScript replace():

'FoxRox'.replace(/(Rox)/, '<span>$1</span>'); 

Per sostituire tutto questo attraverso il documento, si potrebbe provare la seguente:

$(":contains('Rox')").html(function(i,o){ 
    return o.replace(/(Rox)/g, '<span>$1</span>'); 
});​ 

nota, se il termine è non "Rox", dovrai cambiarlo nello script sopra.

+0

Immagino che la cosa difficile sia cambiare il DOM. – gdoron

+0

Per favore controlla i miei siti web su cui sto lavorando adesso, http://www.foxklld.site88.net. Ho incollato il tuo codice ma mi dà qualche tipo di errore e anche che voglio sostituire 'KllD' con' Rox' vedrai cosa intendo. Quindi voglio qualcosa del tipo "FoxKllD'.replace (/ (KllD) /, ' Rox');'. Inoltre, sulla console di Chrome ha detto il token inaspettato ILLEGAL. – PhoxKiD

+0

@ user1374078 Ma vuoi sostituirlo tutto nel tuo documento, giusto? – Sampson