突出显示Web元素中的特定文本

时间:2013-10-22 14:58:28

标签: jquery

我需要将颜色应用于html元素,但仅限于内容的特定部分。

目前我用一个名为matchedOn的类标记每个,并使用以下Jquery执行必要的着色:

$('.matchedOn:contains("' + matchedItem + '")').css({ "color": "#008000", "background-color": "#FFFF00" });

matchedItem是来自Ajax feed的变量。好的,所以这适用于完整的条目,所以如果<dd>中显示的文本是<dd>Hello there this is a test string</dd>,并且在上面的示例中匹配项是'this is',我怎么才能只分配颜色属性只是'this is'

2 个答案:

答案 0 :(得分:3)

所有样式处理都需要包装在标记中,因此请在此文本周围加<span class='highlight'>并在样式表中添加highlight声明。

使用jQuery查找元素后,您需要替换元素中.html()中的文本以包围文本范围内的文本。

var match = $('.matchedOn:contains("' + matchedItem + '")')
$(match).html($(match).html().replace(matchedItem,"<span class='highlight'>"+matchedItem+"</span>")); 

答案 1 :(得分:1)

这里有一个JQuery插件:JavaScript text higlighting jQuery plugin

您可以编写自己的方法来包装文本,但我相信这将是一个更快的解决方案。