0

我正在使用http://loopj.com/jquery-tokeninput/demo.html#formatting

我想让匹配的字符也变成红色,但找不到他们拥有的 CSS 或 Javascript。

在此处输入图像描述

他们的项目在GitHub 上

4

1 回答 1

2

使用 chrome 开发人员工具,我发现jquery-tokeninput正在格式化搜索结果,如下所示:

<ul style="display: block; overflow: hidden;">
    <li class="token-input-dropdown-item2-facebook">Trad<b>in</b>g Spouses</li>
    <li class="token-input-dropdown-item-facebook">T<b>in</b> Man</li>
</ul>

因此,它没有使用 css 类来突出显示匹配的字符,而是手动将这些字符放入<b>标签中。在 javascript 源文件中快速搜索后,我能够找到这个函数:

// Highlight the query part of the search term
function highlight_term(value, term) {
    return value.replace(
      new RegExp(
        "(?![^&;]+;)(?!<[^<>]*)(" + regexp_escape(term) + ")(?![^<>]*>)(?![^&;]+;)",
        "gi"
      ), function(match, p1) {
        return "<b>" + escapeHTML(p1) + "</b>";
      }
    );
}

因此,我想这只是修改它以便能够自定义匹配的字符样式的问题。例如,您可以将返回字符串更改为:

return '<b class="match">' + escapeHTML(p1) + '</b>';

并将您的样式应用于b.match css 类。

于 2013-01-30T22:16:33.353 回答