作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 jquery.highlight 插件:http://code.google.com/p/gce-empire/source/browse/trunk/jquery.highlight.js?r=2
我用它来突出显示搜索结果。
问题是,如果我搜索诸如“café”之类的内容,它不会突出显示任何单词。
如果我搜索“cafe”,即使我的结果同时包含“cafe”和“café”,它也会>仅突出显示“咖啡馆”。
因此,我需要突出显示单词的所有“版本”,无论是否带有变音符号。
这可能吗?
最佳答案
测试 HTML:
<div id="wrapper-accent-sensitive"> <p>cafe</p> <p>asdf</p> <p>café</p></div><hr /><div id="wrapper-not-accent-sensitive">> <p>cafe</p> <p>asdf</p> <p>café</p></div>
Test CSS:
.yellow { background-color: #ffff00;}
Replacement Javascript:
jQuery.fn.highlight = function (words, options) {
var accentedForms = {
'c': 'ç',
'e': 'é'
};
var settings = { className: 'highlight', element: 'span', caseSensitive: false, wordsOnly: false, accentInsensitive: false };
jQuery.extend(settings, options);
if (settings.accentInsensitive) {
for (var s in accentedForms) {
words = words.replace(s, '[' + s + accentedForms[s] + ']');
}
}
if (words.constructor === String) {
words = [words];
}
var flag = settings.caseSensitive ? "" : "i";
var pattern = "(" + words.join("|") + ")";
if (settings.wordsOnly) {
pattern = "\\b" + pattern + "\\b";
}
var re = new RegExp(pattern, flag);
return this.each(function () {
jQuery.highlight(this, re, settings.element, settings.className);
});
};
测试代码:
$(document).ready(function() {
$("#wrapper-accent-sensitive").highlight("cafe", { className: 'yellow' });
$("#wrapper-not-accent-sensitive").highlight("cafe", { className: 'yellow', accentInsensitive: true });
});
关于jquery - 在 jQuery 中突出显示带有(和不带有)重音字符/变音符号的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6067344/
COW 不是奶牛,是 Copy-On-Write 的缩写,这是一种是复制但也不完全是复制的技术。 一般来说复制就是创建出完全相同的两份,两份是独立的: 但是,有的时候复制这件事没多大必要
我是一名优秀的程序员,十分优秀!