Jquery包含文本并将其设为蓝色

Jquery包含文本并将其设为蓝色,jquery,text,contains,Jquery,Text,Contains,设计师希望公司名称为蓝色,但公司名称嵌入到文本中,周围没有任何html元素 我希望能够找到一个字符串,并仅将该字符串设置为蓝色 我有这个代码,但它使整个文本为蓝色 $(function() { $('div:contains("The Company Name")').css("color","blue"); }); 这是示例代码 <div>The company name is great and makes a lot of happy customers</di

设计师希望公司名称为蓝色,但公司名称嵌入到文本中,周围没有任何html元素

我希望能够找到一个字符串,并仅将该字符串设置为蓝色

我有这个代码,但它使整个文本为蓝色

$(function() {
    $('div:contains("The Company Name")').css("color","blue");
});
这是示例代码

<div>The company name is great and makes a lot of happy customers</div>
<div>You can have more info on <a href="link">The company name</a>[...]</div>
这家公司的名字很好,赢得了很多满意的客户
您可以获得有关[…]的更多信息
这就是我想要的结果

<div><span style="color:blue;">The company name</span> is great and makes a lot of happy customers</div>
<div>You can have more info on <a href="link"><span style="color:blue;">The company name</span></a>[...]</div>
这家公司的名字很好,赢得了很多满意的客户
您可以获得有关[…]的更多信息
有人吗?

$(函数(){
    $(function() {
    $('div').each(function() {
   $(this).html($(this).html().toString().replace('The Company Name', '<span style="color: blue">The Company Name</span>'));
    });
    });
$('div')。每个(函数(){ $(this.html($(this.html().toString().replace('公司名称','公司名称')); }); });
您可以使用来实现您的目标。

如果您希望使用jQuery而不是直接编写
等来创建
span
,也可以这样做。
:

var s = "The company name";
$('div:contains("'+s+'")').html(function(i,e){
    var p = new RegExp(s,"g");
    return e.replace(p,$('<span />').css('color','blue').text(s).wrap('<div />').parent().html());       
});
var s=“公司名称”;
$('div:contains(“+s+”)).html(函数(i,e){
var p=新的RegExp(s,“g”);
返回e.replace(p,$('').css('color','blue').text(s).wrap('').parent().html();
});

示例:

它甚至不会使第一个
div变为蓝色,因为它区分大小写。为什么要使用jQuery?将需要更改“公司名称”的大小写以匹配示例HTML,但逻辑是正确的。这太完美了,太棒了!我不懂魔法,但它很管用!我不确定是否可以用div包装,因为默认情况下div是display:block,只需span就可以了。它不会把
div
放在任何地方。它将它包装在一个元素中(本例中为
div
,但它可以是任何元素),并获取该元素的内容(不包含
div
)。检查示例中的输出。