jQuery если div содержит этот текст, замените эту часть текста


Как говорится в заголовке, я хочу заменить определенную часть текста в div.

структура выглядит так:

<div class="text_div">
    This div contains some text.
</div>

и я хочу заменить только " содержит "на" Привет всем", например. Я не могу найти решение для этого.

5 63

5 ответов:

можно использовать text метод и передать функцию, которая возвращает измененный текст, используя родной String.prototype.replace метод для выполнения замены:

​$(".text_div").text(function () {
    return $(this).text().replace("contains", "hello everyone"); 
});​​​​​

здесь пример.

var d = $('.text_div');
d.text(d.text().trim().replace(/contains/i, "hello everyone"));

Если это возможно, вы можете обернуть слово(ы), которое вы хотите заменить в теге span, например:

<div class="text_div">
    This div <span>contains</span> some text.
</div>

затем вы можете легко изменить его содержимое с помощью jQuery:

$('.text_div > span').text('hello everyone');

Если вы не можете обернуть его в тег span, вы можете использовать регулярные выражения.

можно использовать содержит селектор для поиска элементов, содержащих определенный текст

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

очень просто просто используйте этот код, он сохранит HTML, удаляя только развернутый текст:

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");  

    });
});

вот полный пример: https://blog.hfarazm.com/remove-unwrapped-text-jquery/