我需要编写一个函数来搜索HTML页面中的所有内容以获取特定的字符串,如果找到它,则更改文本的颜色。
这可能吗?
由于
答案 0 :(得分:8)
你可以这样做:
CSS:
.someclass {
color: red;
}
Javascript:
$('p:contains('+yourstring+')', document.body).each(function(){
$(this).html($(this).html().replace(
new RegExp(yourstring, 'g'), '<span class=someclass>'+yourstring+'</span>'
));
});
请注意,如果yourstring位于标记或属性中,则会出现问题。
在将处理程序附加到段落(或其中可能包含yourstring的元素,例如链接)之前,请小心运行此代码。
答案 1 :(得分:1)
dystroy的答案的问题是它会覆盖整个HTML,因此如果你在包含文本的节点中有任何处理程序,它们将被删除。
正确的解决方案是使用text ranges仅更新文本本身,而不是更新其周围的所有HTML。见Highlight text range using JavaScript
为了好玩,有一种内置方法window.find适用于FF and Chrome。虽然它不符合标准,但一次只能找到一个。就像ctrl + f。
window.find("anything");
答案 2 :(得分:0)
JQuery查找并更改字符串的样式&gt;&gt;仅复制粘贴并运行:)
text-shadow