高亮显示与数组字符串一起使用时文本插件中断



我正在尝试使用基于jQuery的文本高亮显示插件,它适用于单个单词高亮显示,但当我传递数组时会中断。我的语法似乎与文档一样正确http://bartaz.github.io/sandbox.js/jquery.highlight.html

示例:http://jsfiddle.net/YyAXP/6/

//$('#article').highlight("me");
$("#article").highlight(["me","highlight","plugin"]);

我需要将几个关键字传递给这个函数,以便它突出显示所有关键字。

已解决

脚本似乎有一个错误,使用以下完整的基于数组的搜索突出显示脚本源解决了这个错误

Fiddle:http://fiddle.jshell.net/ogyyvvog/2/

运行代码时出错

pat.toUpperCase不是一个函数

pat应该是数组,也许你可以用这种方式修复它?

return this.length && pat && pat.length ? this.each(function () {
    for(var i=0;i<pat.length;i++)
        innerHighlight(this, pat[i].toUpperCase());            
}) : this;

jsfiddle

声明语法正确

$("#article").highlight(["me","highlight","plugin"]);

您只需要将插件正确地包含在您的jsfiddle中。不包括标记脚本,而是使用"外部资源"菜单。。。检查更新的演示

您可以使用我的突出显示插件jQuiteLight,它可以轻松地处理数组和正则表达式。

// for strings
$(".element").mark("query here");
// for RegExp
$(".element").mark(new RegExp(/query reg[a-zA-Z]+/));
// for array
$(".element").mark(["string query", new RegExp(/query arr[a-z]+/)]);

最新更新