如果在jquery的搜索中找不到匹配项,如何设置警报

如果在jquery的搜索中找不到匹配项,如何设置警报,jquery,Jquery,我正在实现搜索功能。我找到一个链接,它工作正常。但有一个问题是,当在页面中找不到匹配项时,它没有设置警报。请告诉我在哪里插入该警报。我调试没有警报。 我就是这样做的。match.length()==0然后我显示警报,但它不工作。你能帮忙吗 这是我找到代码的链接。 var searchIndex=-1; var searchTermOld=''; $(文档).ready(函数(){ $('.searchbox')。在('change',function()上{ if($(this.val()='

我正在实现搜索功能。我找到一个链接,它工作正常。但有一个问题是,当在页面中找不到匹配项时,它没有设置警报。请告诉我在哪里插入该警报。我调试没有警报。 我就是这样做的。match.length()==0然后我显示警报,但它不工作。你能帮忙吗

这是我找到代码的链接。

var searchIndex=-1;
var searchTermOld='';
$(文档).ready(函数(){
$('.searchbox')。在('change',function()上{
if($(this.val()=''){
var选择器=“#实时内容”;
$(选择器+'span.match')。每个(函数(){
$(this.replace为($(this.html());
});
}
searchIndex=-1;
$('.searchNext').attr(“禁用”、“禁用”);
$('.searchPrev').attr(“禁用”、“禁用”);
searchTermOld=$(this.val();
});
$('.searchbox')。在('keyup',function()上{
var选择器=“#实时内容”;
if($(this.val()=''){
$(选择器+'span.match')。每个(函数(){
$(this.replace为($(this.html());
});
}
if($(this).val()!==searchTermOld){
$(选择器+'span.match')。每个(函数(){
$(this.replace为($(this.html());
});
searchIndex=-1;
$('.searchNext').attr(“禁用”、“禁用”);
$('.searchPrev').attr(“禁用”、“禁用”);
}
});
$('.search')。在('click',function()上{
如果(searchIndex==-1){
var searchTerm=$('.searchbox').val();
searchAndHighlight(searchTerm);
}
else searchNext();
如果($('.match')。长度>1){
$('.searchNext').removeAttr(“已禁用”);
$('.searchPrev').removeAttr(“禁用”);
}
});
$('searchNext')。在('click',searchNext')上;
$('searchPrev')。在('click',searchPrev');
});
函数searchAndHighlight(searchTerm){
如果(搜索术语){
var searchTermRegEx,匹配项;
var选择器=“#实时内容”;
$(选择器+'span.match')。每个(函数(){
$(this.replace为($(this.html());
});
试一试{
searchTermRegEx=new RegExp(“(“+searchTerm+”)”,“ig”);
}捕获(e){
返回false;
}
$('.highlighted').removeClass('highlighted');
matches=$(选择器).text().match(searchTermRegEx);
if(matches!==null&&matches.length>0){
var txt=$(选择器).text().replace(searchTermRegEx,$1');
$(选择器).html(txt);
searchIndex++;
$('.match:first').addClass('突出显示');
$(文档).scrollTop($('.match').eq(searchIndex.offset().top);
返回true;
}
返回false;
}
返回false;
}
函数searchNext(){
searchIndex++;
如果(searchIndex>=$('.match').length)searchIndex=0;
$('.highlighted').removeClass('highlighted');
$('.match').eq(searchIndex).addClass('highlighted');
$(文档).scrollTop($('.match').eq(searchIndex.offset().top);
}
函数searchPrev(){
搜索索引--;
如果(searchIndex<0)searchIndex=$('.match')。长度-1;
$('.highlighted').removeClass('highlighted');
$('.match').eq(searchIndex).addClass('highlighted');
$(文档).scrollTop($('.match').eq(searchIndex.offset().top);
}

如果返回true,则可以在结束后添加它

比如:

if(matches!==null&&matches.length>0)
搜索与null不同的匹配项并返回true,这使函数停止。如果该语句不符合/true,则可以在该If之后放置警报。


如果返回true,则可以在结束后添加它

比如:


if(matches!==null&&matches.length>0)
搜索与null不同的匹配项并返回true,这使函数停止。如果该语句不符合/true,您可以将警报放在If之后。

只需检查searchs的返回值,并突出显示If的false显示警报

if(!searchAndHighlight(searchTerm))
    alert('No Matches Found.');

如果searchAndHighlight的返回值为false,则只需检查它的返回值即可

if(!searchAndHighlight(searchTerm))
    alert('No Matches Found.');
工作演示

工作演示


只有一个问题,它滚动到多。如果匹配在同一页上,它也滚动。我认为它滚动只有当它在页面下方或上方你首先添加大数据,然后搜索它滚动太多,它看起来不好,它滚动到文本。只有一个问题,它滚动到多。如果匹配在同一页上,它也滚动。我认为它滚动仅当它位于页面下方或上方时,您首先添加大数据,然后搜索它滚动太多,它看起来不好,它会向上滚动到文本..滚动问题它滚动太多..:(@Rohit,你说滚动是什么意思?演示中没有滚动,只是警告框没有找到匹配项。实际上,当找到searvh时。如果在字体(同一页)中找到测试,它应该只转到高达焦点的文本。它不应该滚动,但它是滚动滚动,滚动问题是滚动太多了..:(@Rohit,滚动是什么意思?演示中没有滚动,只是警告框没有找到匹配项。实际上,当找到searvh时。如果在字体(同一页)中找到测试,它应该只转到最新焦点文本。它不应该滚动,但它正在滚动
if(!searchAndHighlight(searchTerm))
    alert('No Matches Found.');
function searchAndHighlight(searchTerm) {
    if (searchTerm) {
        var searchTermRegEx, matches;
        var  selector= "#realTimeContents";
        $(selector+' span.match').each(function(){
        $(this).replaceWith($(this).html());
      });
        try {
            searchTermRegEx = new RegExp('('+searchTerm+')', "ig");
        } catch (e) {
            return false;
        }
        $('.highlighted').removeClass('highlighted');
        matches = $(selector).text().match(searchTermRegEx);
        if (matches !==null && matches.length > 0) {
            var txt = $(selector).text().replace(searchTermRegEx, '<span class="match">$1</span>');
            $(selector).html(txt);
            searchIndex++;
            $('.match:first').addClass('highlighted');
           $(document).scrollTop($('.match').eq(searchIndex).offset().top);

          return true;
        }else{ //added this else here
          alert('not found');
        }
      return false;
    }
  return false;
}
if($('.match').eq(searchIndex).offset().top > $(window).height()-10){
    $(document).scrollTop($('.match').eq(searchIndex).offset().top);
}