Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何设置ctrl+;突出效果?_Javascript_Jquery - Fatal编程技术网

Javascript 如何设置ctrl+;突出效果?

Javascript 如何设置ctrl+;突出效果?,javascript,jquery,Javascript,Jquery,这是一个具有突出显示效果的简单搜索函数,但是,它突出显示整个单词,而不是匹配的字符串 我怎样才能使它像在浏览器中按ctrl+f键一样,只突出显示匹配单词的一部分 $(document).ready(function(){ $('input').keyup(function(){ $("ul li").removeClass('hightlight'); var searchInput = $(this).val(); if(searchI

这是一个具有突出显示效果的简单搜索函数,但是,它突出显示整个单词,而不是匹配的字符串

我怎样才能使它像在浏览器中按ctrl+f键一样,只突出显示匹配单词的一部分

$(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);
        });
    });