我需要将颜色应用于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'
?
答案 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
您可以编写自己的方法来包装文本,但我相信这将是一个更快的解决方案。