jQuery if div contains this text, replace that part of the text
Like the title says, I want to replace a specific part of the text in a div.
The structure looks like this:
<div class="text_div">
This div contains some text.
</div>
And I want to replace only "contains" with "hello everyone", for example. I can't find a solution for this.
Solution 1:
You can use the text
method and pass a function that returns the modified text, using the native String.prototype.replace
method to perform the replacement:
$(".text_div").text(function () {
return $(this).text().replace("contains", "hello everyone");
});
Here's a working example.
Solution 2:
If it's possible, you could wrap the word(s) you want to replace in a span tag, like so:
<div class="text_div">
This div <span>contains</span> some text.
</div>
You can then easily change its contents with jQuery:
$('.text_div > span').text('hello everyone');
If you can't wrap it in a span tag, you could use regular expressions.
Solution 3:
Very simple just use this code, it will preserve the HTML, while removing unwrapped text only:
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");
});
});
Here is full example: https://blog.hfarazm.com/remove-unwrapped-text-jquery/