Javascript 如何设置ctrl+;突出效果?
这是一个具有突出显示效果的简单搜索函数,但是,它突出显示整个单词,而不是匹配的字符串 我怎样才能使它像在浏览器中按ctrl+f键一样,只突出显示匹配单词的一部分Javascript 如何设置ctrl+;突出效果?,javascript,jquery,Javascript,Jquery,这是一个具有突出显示效果的简单搜索函数,但是,它突出显示整个单词,而不是匹配的字符串 我怎样才能使它像在浏览器中按ctrl+f键一样,只突出显示匹配单词的一部分 $(document).ready(function(){ $('input').keyup(function(){ $("ul li").removeClass('hightlight'); var searchInput = $(this).val(); if(searchI
$(document).ready(function(){
$('input').keyup(function(){
$("ul li").removeClass('hightlight');
var searchInput = $(this).val();
if(searchInput !== ""){
$("ul li:contains('" + searchInput + "')").addClass('hightlight');
}
});
});
我的在线代码:
使用以下javascript:
$(document).ready(function(){
$('input').keyup(function(){
var searchInput = $(this).val();
$('.hightlight').contents().unwrap();
if(searchInput !== ""){
$("ul li:contains('" + searchInput + "')").each(function(i, e) {
var text = $(this).text().replace(new RegExp(searchInput, 'gm'), '<span class="hightlight">' + searchInput + '</span>');
$(this).html(text);
})
}
});
});
$(文档).ready(函数(){
$('input').keyup(函数(){
var searchInput=$(this.val();
$('.hightlight').contents().unwrap();
如果(searchInput!==“”){
$(“ul-li:contains(“+searchInput+”))))。每个(函数(即,e){
var text=$(this.text().replace(新的RegExp(searchInput,'gm'),''+searchInput+'');
$(this).html(文本);
})
}
});
});
这里是一个使用所需HTML和css的工作演示
$(“#搜索”)。在(“键控”,函数()上{
$(“#项li span”).contents().unwrap();
$(“#项li”)。每个(函数(){
var search=$(“#search”).val();
var项目=$(此项);
var text=item.text();
var regex=new RegExp(搜索“g”);
text=text.replace(regex,“+search+”);
html(文本);
});
});
编辑:
这看起来像上一个答案的副本,如果需要可以删除。如果一个单词包含两个出现的搜索字符串,它将首先高亮显示,而chrome则会高亮显示所有出现的内容。我希望你能用E easeYep做到这一点,我错过了,谢谢你提醒=)用regexp替换搜索字符串。太好了!在发布自己的答案之前,你读过其他答案吗?您刚刚发布了几乎完整的副本。@AlexG.P。哈哈,我没注意到。
$("#search").on( "keyup", function() {
$("#items li span").contents().unwrap();
$("#items li").each(function(){
var search = $("#search").val();
var item = $(this);
var text = item.text();
var regex = new RegExp(search, 'g');
text = text.replace(regex, "<span class='highlight'>"+search+"</span>");
item.html(text);
});
});