【发布时间】:2014-03-06 05:39:27
【问题描述】:
我在过滤器中找到了censors 单词的这段代码,但我希望它具有不同的background color 或different text color(如红色),而不是过滤。
无论我尝试过什么,我都对 jsfiddle 发表了评论。
这是Jsfiddle
http://jsfiddle.net/xe2Zj/257/
请帮忙
【问题讨论】:
我在过滤器中找到了censors 单词的这段代码,但我希望它具有不同的background color 或different text color(如红色),而不是过滤。
无论我尝试过什么,我都对 jsfiddle 发表了评论。
这是Jsfiddle
http://jsfiddle.net/xe2Zj/257/
请帮忙
【问题讨论】:
http://jsfiddle.net/xe2Zj/258/
由于您想标记特定的单词,<mark> 似乎是这项工作的好人选。您可以使用 CSS 为您的 mark 设置样式。
我只是改变了这两行:
$('.post').text(function(i, txt){
到
$('.post').html(function(i, txt){
这个来自
var replacement = '*'.repeat(filter[i].length);
到
var replacement = '<mark>' + filter[i] + '</mark>';
编辑: 再多simpler solution:
var filter = [' ass ', ' words '],
reg = new RegExp("(" + filter.join("|") + ")", "g");
$(".post").html(
$(".post").html().replace(reg, "<mark>$1</mark>")
);
【讨论】:
mark 的默认样式。在我之前的评论中,我添加了另一个白色背景的链接。顺便说一句,用更简单的解决方案查看我的更新
change 或 keyup 事件中运行 replace。
在 Jquery 中使用包含。选择所有包含 指定的文本。
var array = ["sample" , "hello"]
$.each(array , function( index, value ) {
$( "div:contains("+value +")" ).css( "background-color", "red" );
});
【讨论】:
divs,即使有,这会将整个 div 标记为红色,而不仅仅是单词