如何将一些文本包装到带有类的跨度中

时间:2017-09-13 10:59:11

标签: jquery text replace element

我想为包含特定文本的所有正文添加一个类......

这是我尝试使用的代码,但它没有用

$("body").html().replace("by care", "<span class='blue'> by care </span>");

2 个答案:

答案 0 :(得分:0)

您需要在替换部分内容后替换实际的正文html:

var replacedHtml = $("body").html().replace("by care", "<span class='blue'> BY CARE </span>");
$('body').html(replacedHtml);

要替换所有实例,请将替换更改为:

var replacedHtml = $("body").html().replace(/by care/g, "<span class='blue'> BY CARE </span>");

g开关代表全局 - 全局替换。

答案 1 :(得分:0)

您可以使用jquery .each:contains.split()

这是一个有效的例子:

LIVE DEMO Snapshot

Here is the link to the live bin.

var toSelect = 'by care';
var selection = $(".container :contains('"+toSelect+"')");

$.each(selection, function(i, s){
    var sp = $(s).text().split('by care');
    $(s).html(sp[0]+"<span class='blue'>"+toSelect+"</span>"+sp[1]);
})