javascript - jQuery 突出显示 href 值以外的单词

标签 javascript jquery regex

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/

相关文章:

javascript - 我无法让 pagify.js 工作

php - 每秒请求一个 php 脚本会给服务器带来太大的压力吗?

c++ - C++/Star 问题中的正则表达式

javascript - 获取外部引用的类属性是本地的和内联的?

python - 从列表列表中提取数字

python - 使用正则表达式获取匹配字符串的百分比

javascript - 如何在 jQuery 中重新触发尚未完成的音频

javascript - 如何使用变量名实现字符串格式化程序

javascript - 在 ckeditor 中找不到 editor.widgets.add

javascript - 消失的复选标记之谜