Zoals de titel al zegt, wil ik een specifiek deel van de tekst in een div vervangen.
De structuur ziet er als volgt uit:
<div class="text_div">
This div contains some text.
</div>
En ik wil bijvoorbeeld alleen “bevat” vervangen door “hallo iedereen”.
Ik kan hier geen oplossing voor vinden.
Antwoord 1, autoriteit 100%
U kunt de methode text
gebruiken en een functie doorgeven die de gewijzigde tekst retourneert, met de native String.prototype.replace
methode om de vervanging:
$(".text_div").text(function () {
return $(this).text().replace("contains", "hello everyone");
});
Hier is een werkvoorbeeld.
Antwoord 2, autoriteit 8%
Als het mogelijk is, kun je de woorden die je wilt vervangen in een span-tag plaatsen, zoals:
<div class="text_div">
This div <span>contains</span> some text.
</div>
U kunt de inhoud dan eenvoudig wijzigen met jQuery:
$('.text_div > span').text('hello everyone');
Als je het niet in een span-tag kunt plaatsen, kun je reguliere expressies gebruiken.
Antwoord 3, autoriteit 7%
Heel eenvoudig, gebruik gewoon deze code, het behoudt de HTML, terwijl alleen onverpakte tekst wordt verwijderd:
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");
});
});
Hier is een volledig voorbeeld: https://blog.hfarazm.com/remove- unwrapped-text-jquery/
Antwoord 4, autoriteit 5%
var d = $('.text_div');
d.text(d.text().trim().replace(/contains/i, "hello everyone"));
Antwoord 5, autoriteit 2%
Je kunt de bevat selectorgebruiken om te zoeken naar elementen die een specifieke tekst bevatten
var elem = $('div.text_div:contains("This div contains some text")');
elem.text(elem.text().replace("contains", "Hello everyone"));