2011-11-16 13 views
35
<div id="id1"> 
<p> 
    apple 
</p> 
<p> 
    ball 
</p> 
<p> 
    cat 
</p> 
<p> 
    dogsss 
</p> 
</div> 

come faccio a cambiare dogsss-dollsss utilizzando jquery?Jquery: ricerca di testo e sostituire

+0

No, Tkz per tutti, Ma hai frainteso il mio significato .. 'sss' è un testo che non saprei esattamente cosa b sarà esattamente .. Ma voglio cambiare' dog' in 'doll' – william

+0

a C# sostituire 'string temp =" tasting "; temp = temp.Replace (" tast "," test ");' sth così. – william

risposta

67

Si può provare

$('#id1 p').each(function() { 
    var text = $(this).text(); 
    $(this).text(text.replace('dog', 'doll')); 
}); 

http://jsfiddle.net/2EvGF/

Si potrebbe utilizzare invece .html() e/o ulteriori sofisticare la chiamata .replace() in base alle proprie esigenze

9
$('p:contains("dogsss")').text('dollsss'); 
+0

Ciò cambierebbe 'dogsss' in' doll' –

+3

@EricC La domanda è stata aggiornata dopo aver risposto a –

8

provare questo,

$('#id1').html($('#id1').html().replace('dogsss','dollsss')); 

working sample

+0

@JohnHartsock: vedere l'esempio funzionante. sta aggiornando. spero che manchi la parte html impostata :) –

5

più specifico:

$("#id1 p:contains('dog')").text($("#id1 p:contains('dog')").text().replace('dog', 'doll')); 
+0

Utilizzato '.html()' invece di '.text()' per mantenere i tag HTML. – itskawsar

0

ero alla ricerca di qualcosa di simile e io uso il codice che Doug Owings postato, ma il mio testo aveva alcuni tag br e il codice lo stava cancellando.

Quindi io uso questo: (solo notare che ho sostituito .text() per .html())

testo:

< p class = "textcontent" > 
    Here some text replace me 
    <br> here an other text 
    <br> here is more text 
< /p> 

JS:

$('.textcontent').each(function() { 

    var text = $(this).html(); 
    $(this).html(text.replace('replace me', 'I love this text')); 

}); 

anche se vuoi modificare più testi, crea un array:

var replacetext = { 
    "Text 0": "New Text 0", 
    "Text 1": "New Text 1", 
    "Text 2": "New Text 2", 
    "Text 3": "New Text 3", 
    "Text 4": "New Text 4" 
}; 

$.each(replacetext, function(txtorig, txtnew) { 
    var text = $('#parentid').html(); 
    $('#parentid').html(text.replace(txtorig, txtnew)); 
}); 
+0

come utilizzare questo per più record con lo stesso ID o la stessa classe? – Super

3

Per testare il metodo di ricerca e sostituzione. È anche possibile utilizzare la modalità semplice.

var string ='my string' 
var new_string = string.replace('string','new string'); 

alert(string); 
alert(new_string); 
+0

Pure JavaScript è sempre meglio! – Shadowbob

0

Joanna Avalos risposta è meglio, solo notare che ho sostituito .text()-.html(), in caso contrario, alcuni degli elementi HTML all'interno che saranno distrutti.

Problemi correlati