2

我有一个程序应该采用关键字并使用 CSS 突出显示/着色它们。

我使用 jQuery 是因为我想最终更改突出显示的单词,所有这些都由用户完成。

现在的问题不是没有突出显示(耶),而是不是所有的东西都没有突出显示(哦,不)。我设置了几个单词要通过并突出显示(气球,多萝西,旋风),但通常发生的情况是某些单词中的所有(如果有的话)都会被着色。

希望这个 jsFiddle 东西比我能更好地解释它。您会在第二行注意到第一个单词和关键字 Dorothy 并不像我预期的那样是红色的。

谢谢。对不起,如果我太不连贯或任何东西,感谢反馈

4

1 回答 1

4

这是想要的吗?

$(function(){
     var keyWord = new Array("Dorothy","cyclone","miles","house","balloon");
     var regexp = new RegExp(keyWord.join("|"),"g");
     $('#oz li').html( function(i,value){
          return value.replace(regexp ,
               '<span containsStringImLookingFor="true" id="$&">$&</span>');
     });
});

解释

regexp/Dorothy|cyclone|miles|house|balloon/g正则表达式,它匹配数组中所有列出的单词。方法用 ' ' 模板.replace()替换所有匹配的单词。<span containsStringImLookingFor="true" id="{matched word}">matched word</span>replace 方法中的 ' $&' 表示当前匹配的单词。

于 2012-07-18T18:14:25.693 回答