使用jquery:contains和.eq()来修改特定div中的文本样式

时间:2011-05-04 12:57:18

标签: jquery

是否可以结合使用:contains和.eq()来搜索特定div中的文本?

我目前使用以下两个语句,这些语句根据PHP $ _GET []从URL中获取的值创建jquery语句。

第一个只检查与当前$ platformString匹配的链接文本并将其变为白色。

$(\"a:contains('". $platformString . "')\").css(\"color\", \"#ffffff\");

第二个显示并隐藏基于存储在部分中的已知值的div。

$(\".sidebar_content\").eq(" . $section .").toggle();

问题是$ platformString可以在其他隐藏的div中有多个匹配,一旦匹配它们也会变成白色。

我可以将这两个语句组合在一起,只是突出显示当前$ section中的$ platformString吗?

非常感谢您提供的任何建议。

罗伯特

2 个答案:

答案 0 :(得分:1)

我不确定我是否理解正确,但是......

你试过“a:visible:contains()”吗?

这应该只匹配可见的元素并包含指定的文本。

答案 1 :(得分:0)

这将在页面上搜索platformString中包含的文本的所有div,并将它们包装在标签中。

var platformString = "replaceMe";

$('div').html(function() {
   return $(this).html().replace(new RegExp(platformString, "ig"), '<strong>$&</strong>'));
});

它类似于“突出显示”,只需将<strong>替换为您想要使用的另一种标记。也许<span>带有一些自定义效果的类?

编辑:将searchString替换为$& - 匹配搜索到的文本并保留大小写