Como dice el título, quiero reemplazar una parte específica del texto en un div.
La estructura se ve así:
<div class="text_div">
This div contains some text.
</div>
Y quiero reemplazar solo "contiene" con "hola a todos", por ejemplo. No puedo encontrar una solución para esto.
Respuestas:
Puede usar el
text
método y pasar una función que devuelva el texto modificado, usando elString.prototype.replace
método nativo para realizar el reemplazo:$(".text_div").text(function () { return $(this).text().replace("contains", "hello everyone"); });
Aquí tienes un ejemplo práctico .
fuente
text
método jQuery , cuando se le pasa una función, establece el texto de la selección en el valor de retorno de esa función. Sin elreturn
texto, el texto sería reemplazado por nada.Si es posible, puede envolver la (s) palabra (s) que desea reemplazar en una etiqueta de intervalo, así:
<div class="text_div"> This div <span>contains</span> some text. </div>
Luego puede cambiar fácilmente su contenido con jQuery:
$('.text_div > span').text('hello everyone');
Si no puede envolverlo en una etiqueta de intervalo, puede usar expresiones regulares.
fuente
var d = $('.text_div'); d.text(d.text().trim().replace(/contains/i, "hello everyone"));
fuente
Muy simple, solo use este código, preservará el HTML, mientras elimina solo el texto no envuelto:
jQuery(function($){ // Replace 'td' with your html tag $("td").html(function() { // Replace 'ok' with string you want to change, you can delete 'hello everyone' to remove the text return $(this).html().replace("ok", "hello everyone"); }); });
Aquí hay un ejemplo completo: https://blog.hfarazm.com/remove-unwrapped-text-jquery/
fuente
Puede utilizar el selector de contenido para buscar elementos que contengan un texto específico
var elem = $('div.text_div:contains("This div contains some text")'); elem.text(elem.text().replace("contains", "Hello everyone"));
fuente