在文本中搜索值并突出显示它

时间:2014-06-13 13:04:11

标签: jquery

所以我到目前为止的插件是假装像<select>一样工作,但几乎没有变化。

其中有搜索字段,我想要做的是突出显示找到的值(或使用decoration: underline创建文本)。

问题是,我不知道如何正确使用值,并且完全不知道如何插入标记(例如<div><i>)在找到的值之前和之后。

JSFiddle在这里:http://jsfiddle.net/kspD8/

您可以在第269行找到执行搜索操作的代码:

$this.find('.ms-column:contains("' + value + '")').parents('.multiple-selector-table-row').show();  

如果找不到,请查找以下部分:

/* 
===========================================================
    Keyup in search field
===========================================================
*/  

请注意,由于插件逻辑,您将无法选择除您之前选择的任何其他字段(不是错误,只是警告)。

如果您有任何疑问,请随时提出。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

正如朋友所说,你必须使用高亮插件:

http://bartaz.github.io/sandbox.js/jquery.highlight.html

更新您的代码:

而不是使用:

$this.find('.ms-search').keyup(function(event){

使用:

$this.find('.ms-search').on('input',function(event){

然后,在'if'内使用:

$this.find('.ms-column:contains("' + value + '")').highlight(value);

它会将您在.ms-search中输入的文字换成<span class="highlight">value</span>

演示:

http://jsfiddle.net/KasH3/