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

¿Cómo cambio dogsss-dollsss usando jquery?Jquery: buscar y reemplazar texto

+0

No, Tkz para todos, pero has malinterpretado mi significado ... 'sss' es un texto que no sabría exactamente qué es b .. Pero quiero cambiar' perro' a 'muñeca' – william

+0

Similar a C# reemplace 'string temp =" cata "; temp = temp.Replace (" tast "," test ");' sth así. – william

Respuesta

67

Usted puede intentar

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

http://jsfiddle.net/2EvGF/

Se puede usar en su lugar .html() y/o más sofisticar la llamada .replace() de acuerdo a sus necesidades

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

Esto cambiaría 'dogsss' a' doll' –

+3

@EricC La pregunta se actualizó después de contestar –

8

probar esto,

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

working sample

+0

@JohnHartsock: vea la muestra de trabajo. está actualizando Espero que te pierdas la parte html establecida :) –

5

más específico:

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

Usado '.html()' en lugar de '.text()' para mantener etiquetas HTML. – itskawsar

0

que estaba buscando algo similar y utilizo código que Doug Owings publicada, pero mi texto tenía algunas etiquetas br y el código estaba borrándolo.

así que uso esto: (Ten en cuenta que me reemplazó .text() para .html())

texto:

< 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')); 

}); 

también si desea editar varios textos, cree una matriz:

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

cómo usar esto para múltiples registros con la misma identificación o la misma clase? – Super

3

Para probar el método de búsqueda y reemplazo. También se puede usar de manera simple.

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

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

¡JavaScript puro siempre es mejor! – Shadowbob

0

Joanna Avalos respuesta es mejor, apenas observa que sustituye .text()-.html(), de lo contrario, algunos de los elementos HTML dentro que serán destruidos.