用jQuery突出显示html内的文本

前端之家收集整理的这篇文章主要介绍了用jQuery突出显示html内的文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找类似于这个插件 http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html的东西

但我面临的问题是上述插件不允许您突出显示html中的单词.

所以如果你正在寻找我的文字

里面的html喜欢

this is <a href="#">my</a> text that needs highlighting

你不会得到任何突出显示.

有没有办法突出显示文本,而忽略之间的任何html标签

解决方法

我搞了一些RegEx,允许HTML标签位于空格字符的位置:
<div id="test">this is <a href="#">my</a> text that needs highlighting</div>

JavaScript的:

var src_str = $("#test").html();
var term = "my text";
term = term.replace(/(\s+)/,"(<[^>]+>)*$1(<[^>]+>)*");
var pattern = new RegExp("("+term+")","i");

src_str = src_str.replace(pattern,"<mark>$1</mark>");
src_str = src_str.replace(/(<mark>[^<>]*)((<[^>]+>)+)([^<>]*<\/mark>)/,"$1</mark>$2<mark>$4");

$("#test").html(src_str);

尝试这里:http://jsfiddle.net/UPs3V/

原文链接:https://www.f2er.com/jquery/176559.html

猜你在找的jQuery相关文章