jQuery突出显示包含文本格式标签的HTML

问题描述:

有许多jQuery文本突出显示例程(插件)可用,例如Johann Burkard和Bartek Szopka提供的那些,但迄今为止我发现的所有例程都失败突出显示包含HTML文本格式标签的任何文本。jQuery突出显示包含文本格式标签的HTML

例如,如果我要强调这句话“Lorem存有悲坐阿梅德”和HTML页面包含短语Lorem ipsum <strong>dolor</strong> sit amet,那么这句话的发生并不突出。

同样,如果我希望突出显示单词“Lorem”并且HTML页面包含Lo<i>rem</i>,那么该事件也不会突出显示。

我开始在PHP中使用正则表达式来实现突出显示,但实际上每个人都说不可能在没有转到DOM的情况下可靠地突出显示,所以现在我已经去了DOM,并且显然使用DOM有很大困难太!

任何人都可以建议更好的jQuery突出显示例程或修改现有的例程,这将解决这个困难?

+0

就PHP而言,这个问题已经在这里得到了解答:[忽略preg_replace中的html标签](http://*.com/q/8193327/367456) - 同样应该可以使用javascript。 – hakre 2012-04-11 15:29:14

+0

@hakre在您提到的文章中,codepage.viper-7上的示例似乎不起作用。是否有任何地方可以查看或下载您的示例的完整工作代码? – 2012-04-16 19:02:24

+0

是的,它也在github上:https://gist.github.com/gists/1894360/ - 在评论中链接到那里。这个例子在IIRC的答案中。 – hakre 2012-04-16 19:23:50

如果你不是很在意现有的格式,你可以使用:

$('selector').html($('selector').text()); 

然后应用你的荧光笔。

+0

向格式化的HTML应用突出显示是可能的,但需要编写一个插件,而不是简单的答案。 – skafandri 2012-04-10 17:02:22

+0

谢谢你的想法,但为了突出显示此网页,保留任何现有文本格式非常重要。 – 2012-04-10 18:13:46