获取字符串的值;在内容中查找此字符串;感谢jQuery,将新样式应用于此字符串

获取字符串的值;在内容中查找此字符串;感谢jQuery,将新样式应用于此字符串,jquery,css,wordpress,Jquery,Css,Wordpress,答案似乎很简单,但我找不到解决办法 我有一个WordPress网站。在我右边的专栏中,我打印了一些元数据。我想获取一些数据的文本值,然后在我的.entry内容中找到它,并将新样式应用于这个精确的字符串。我可以通过将新样式应用于.entry-content中的整个内容来处理此任务,但我不能使用单个字符串(文本中有许多地方)来应用它 下面是我的代码: jQuery(document).ready(function($) { var str = $('.rrname').text(); // I'v

答案似乎很简单,但我找不到解决办法

我有一个WordPress网站。在我右边的专栏中,我打印了一些元数据。我想获取一些数据的文本值,然后在我的.entry内容中找到它,并将新样式应用于这个精确的字符串。我可以通过将新样式应用于.entry-content中的整个内容来处理此任务,但我不能使用单个字符串(文本中有许多地方)来应用它

下面是我的代码:

jQuery(document).ready(function($) {

var str = $('.rrname').text(); // I've got the value
$(".entry-content:contains('"+ str +"')").css( "text-decoration", 
"underline"); // all the content in the div .entry-content now underline

});
例如,我有一个显示名称的字符串:

节目名称:“好医生”

在我的文章中,这个短语出现过很多次。我希望每一次,好医生都在我的整篇文章的div.entry内容中加下划线

我也尝试过这段代码,但没有结果:

jQuery(document).ready(function($) {

var str = $('.rrname').text();
$(".entry-content:contains('"+ str +"')").each(function() {
    $(this).text().css( "text-decoration", "underline");
});


});
谢谢你的帮助

//虚拟拉取包含要匹配的文本的元素
变量$div=$('div');
//包含要搜索和替换的内容的虚拟变量
var underlineMe=‘好医生’;
//用包装版本替换搜索字符串中出现的所有内容
var modifiedValue=$div.html().replace(新的RegExp(underlineMe,'g'),“”+underlineMe+“”);
//更新DOM中的值
$div.html(modifiedValue)
。下划线{
文字装饰:下划线;
}

废话废话,我是包含好医生的文本,我想在它下面加下划线。哦,好医生可能会出现多次。
var str=$('.rrname').text();
$(“.entry content”).text(函数(){
$(“.entry content”).html($(this.text().replace(str,“+str+”);
});

删除.rrname中html标记之间的任何额外空格

不能将样式应用于文字字符串。必须将其应用于作为该文本父级的dom节点。因此,如果在
css()
之前去掉
text()
部分,您应该会看到样式出现。另外,您不需要显式的
each()
css()
将对其结果堆栈中的元素执行隐式each。好的,如果我不能将其应用于文本字符串。如何找到这个字符串,附加到它,最后修改字符串?另一个答案更好。使用正则表达式。你的方法对我来说很有效,但它会以某种方式删除所有的

标记。但我没能找到第一种方法。我现在正在尝试。好吧,你可以在回显之前在php中正则化你的get the_content(),完全避免使用javascript。类似于echo str_replace(‘好医生’、‘好医生’、获取内容)
。您的方法也非常有效,但它也删除了所有的标签。如何避免这种情况?不!谢谢这是我的错误,因为“;”。剩下的唯一问题是如何省略div中的标记。
var str = $('.rrname').text();

$(".entry-content").text(function () {
     $(".entry-content").html($(this).text().replace(str, '<span class="underline">'+str+'</span>')); 
});