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

问题描述:

我需要将颜色应用于html元素,但仅限于内容的特定部分。突出显示Web元素中的特定文本

目前我标记每个与被叫matchedOn类,并使用以下的Jquery执行neccessary着色:

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

matchedItem是从Ajax饲料的变量。好的,所以这项工作的完整条目,所以如果<dd>中显示的文本是<dd>Hello there this is a test string</dd>,并且在上面的示例中匹配项是'this is',我如何才能将颜色属性仅分配给'this is'

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

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

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

不错的一个Diodeus,工作过一种款待 – CSharpNewBee

有一个jQuery插件,这个位于:JavaScript text higlighting jQuery plugin

你可以写你自己的方法,包装文字,但我敢肯定,这将是一个更快的解决方案。

+0

谢谢杰米,但我用Diodeus的方法去。 – CSharpNewBee