89

正如标题所说,我想替换 div 中文本的特定部分。

结构如下所示:

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

例如,我只想将“包含”替换为“大家好”。我找不到解决方案。

4

5 回答 5

157

您可以使用该text方法并传递一个返回修改后文本的函数,使用本机String.prototype.replace方法执行替换:

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

这是一个工作示例

于 2012-07-04T07:45:48.707 回答
12

如果可能,您可以将要替换的单词包装在 span 标记中,如下所示:

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

然后,您可以使用 jQuery 轻松更改其内容:

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

如果不能将其包装在 span 标签中,则可以使用正则表达式。

于 2012-07-04T07:46:11.267 回答
10

非常简单,只需使用此代码,它将保留 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/

于 2018-04-17T16:28:10.983 回答
8
var d = $('.text_div');
d.text(d.text().trim().replace(/contains/i, "hello everyone"));
于 2012-07-04T07:45:22.133 回答
3

您可以使用contains 选择器搜索包含特定文本的元素

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

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​。

于 2012-07-04T07:47:52.553 回答