jQuery als div deze tekst bevat, vervang dat deel van de tekst

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 textgebruiken en een functie doorgeven die de gewijzigde tekst retourneert, met de native String.prototype.replacemethode 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"));

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

Other episodes