就像标题所说,我想替换div中文本的特定部分。
结构如下:
<div class="text_div">
This div contains some text.
</div>
例如,我只想用“hello everyone”替换“contains”。 我无法找到解决方案。
答案 0 :(得分:130)
您可以使用text
方法并传递一个返回修改后文本的函数,使用原生String.prototype.replace
方法执行替换:
$(".text_div").text(function () {
return $(this).text().replace("contains", "hello everyone");
});
答案 1 :(得分:8)
如果可能,您可以在span标记中包含要替换的单词,如下所示:
<div class="text_div">
This div <span>contains</span> some text.
</div>
然后,您可以使用jQuery轻松更改其内容:
$('.text_div > span').text('hello everyone');
如果无法将其包装在span标记中,则可以使用正则表达式。
答案 2 :(得分:7)
var d = $('.text_div');
d.text(d.text().trim().replace(/contains/i, "hello everyone"));
答案 3 :(得分:3)
您可以使用contains selector搜索包含特定文字的元素
var elem = $('div.text_div:contains("This div contains some text")');
elem.text(elem.text().replace("contains", "Hello everyone"));
答案 4 :(得分:2)
非常简单,只需使用此代码,它将保留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/