我是Javascript的新手。我正在为我的问题学习JavaSript和jQuery。
所以这就是我想要做的事情:
我只想突出显示用户打开的任何页面,其中包含页面中出现的一组单词。
到目前为止,我完全陷入了第1阶段。有人可以指点一下我可以阅读的方法吗?
答案 0 :(得分:1)
您可以在网页上运行此功能以突出显示文字。例如,假设我们想要突出显示的关键字是"完全":
var keyword = 'completely';
var items = document.querySelectorAll('*');
for(var i = 0; i < items.length; i++) {
var element = items[i];
if(element.innerHTML.split('<')[0].indexOf(keyword) > -1) {
element.innerHTML = element.innerHTML.replace(keyword, '<span style="background-color: yellow">'+keyword+'</span>');
}
}
答案 1 :(得分:1)
我会指引你走正确的道路。这段代码不是最好的解决方案,但它会向您展示如何完成此操作:
document.body.innerHTML = document.body.innerHTML.replace(match, '<span class="match">' + match + '</span>');
然后样式.match
类
注意 match
变量是您要突出显示的关键字
答案 2 :(得分:1)
你可以使用
获取页面的整个htmlvar text=document.body.innerHTML;
您可以用以下标记替换每一个字词的javascript
"the sky is blue".replace(/sky/g,"<span class='highlight'>sky</span>");
然后你可以在你的css文件中添加高亮类来进行样式化。
您可以优化搜索,将其限制为仅限html文字
答案 3 :(得分:0)
$(document).ready(function(){
$("#highlighter").bind('keyup', function(e){
var text = $.trim($(this).val());
if(text !== '' && text !== ' '){
var pattern = new RegExp(text, "gi");
}
$('p, div, span').each(function(i){
var str = this;
var orgText = $(str).text();
orgText = orgText.replace(pattern, function($1){
return "<span style='background:red'>" + $1 + "</span>";
});
$(str).html(orgText);
});
});
});