jQuery if div contains this text, replace that part of the text

后端 未结 5 1527
一生所求
一生所求 2020-11-29 20:05

Like the title says, I want to replace a specific part of the text in a div.

The structure looks like this:

This d
相关标签:
5条回答
  • 2020-11-29 20:39

    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.

    0 讨论(0)
  • 2020-11-29 20:41

    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/

    0 讨论(0)
  • 2020-11-29 20:43
    var d = $('.text_div');
    d.text(d.text().trim().replace(/contains/i, "hello everyone"));
    
    0 讨论(0)
  • 2020-11-29 20:48

    You can use the contains selector to search for elements containing a specific text

    var elem = $('div.text_div:contains("This div contains some text")')​;
    elem.text(elem.text().replace("contains", "Hello everyone"));
    

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

    0 讨论(0)
  • 2020-11-29 21:01

    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.

    0 讨论(0)
提交回复
热议问题