jQuery если div содержит этот текст, замените эту часть текста
Как говорится в заголовке, я хочу заменить определенную часть текста в div.
структура выглядит следующим образом:
<div class="text_div">
This div contains some text.
</div>
и я хочу заменить только " содержит "на" Привет всем", например. Я не могу найти решение.
5 ответов
можно использовать text
метод и передать функцию, которая возвращает измененный текст, используя родной String.prototype.replace
метод для выполнения замены:
$(".text_div").text(function () {
return $(this).text().replace("contains", "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/