【发布时间】:2011-03-15 13:06:10
【问题描述】:
我想突出显示页面上的搜索词,但不要弄乱任何 HTML 标记。我在想类似的东西:
$('.searchResult *').each(function() {
$(this.html($(this).html().replace(new RegExp('(term)', 'gi'), '<span class="highlight">$1</span>'));
)};
但是,$('.searchResult *').each 匹配所有元素,而不仅仅是叶节点。换句话说,一些匹配的元素里面有 HTML。所以我有几个问题:
- 如何只匹配叶节点?
- 是否有一些内置的 jQuery RegEx 函数来简化事情?比如:
$(this).wrap('term', $('<span />', { 'class': 'highlight' })) - 有没有办法进行简单的字符串替换而不是正则表达式?
- 还有其他更好/更快的方法吗?
非常感谢!
【问题讨论】:
-
您可以使用例如标记.js
标签: jquery highlighting