This answer几乎可以完美满足我的需求。问题在于它还会匹配 a 标记的 href 属性中的 URL 值。所以如果我有:
<a href="/a-link-to-a-porsche-page">This is a link to a porsche page</a>
并使用这个选择器:
$("a").highlight("porsche", "highlighted");
保时捷在 url 和链接文本中都匹配。如何才能省略 href 属性的值?
先前为后代引用的答案:
jQuery.fn.highlight = function (str, className) {
var regex = new RegExp(str, "gi");
return this.each(function () {
this.innerHTML = this.innerHTML.replace(regex, function(matched) {return "<span class=\"" + className + "\">" + matched + "</span>";});
});
};
不知道 jsfiddle。这是一个基于 justkt 回复的更完整的示例:http://jsfiddle.net/Dzejms/L5Knh/1/
最佳答案
------编辑------
在谷歌上粗略搜索了一下 this neat jquery plugin .这个想法与其他答案相同,但它使用递归和正则表达式来提高效率。检查一下。
关于javascript - jQuery 突出显示 href 值以外的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5542678/