2013-01-15 52 views
0

我目前正在建设一个网页,搜索字段作为过滤器,只如下显示默认的消息问题,我想解决。当在所有现有的<section>中未找到输入的字符串时,页面仍为空白Jquery的搜索过滤器时,没有结果发现

我的问题非常简单,当我的页面没有找到结果时,我怎么能在我的页面上显示默认消息?就像一个简单的<p>解释说“没有找到结果”。

只要找不到字符串,想法是只显示一次

感谢您的帮助。

回答

2

我结束了做以下的事情:

在列表的末尾创建我的错误消息。

<p id="noresults">Error message.</p> 

在需要时显示/隐藏它。

// Search field filter 
var $section = $('section'); 
var $noresults = $('#noresults'); 

$noresults.hide(); 

$('#search').bind('keyup', function() { 
    var input = $(this).val(); 

    if(input) { 
     $section.hide(); 
     var result = $("section:Contains('"+input+"')"); 

     if(result.length) { 
      $noresults.hide(); 
      result.show(); 
     } else { 
      $noresults.show(); 
     } 
    } 
    else { 
     $noresults.hide(); 
     $section.show(); 
    } 
}); 
1

首先检查匹配元素的长度。

var elements = $("section:Contains('"+input+"')"); 
if(elements.length) //Found 
    elements.show(); 
else 
    //display a message 
    $("body").append("<p>No results were found.</p>"); 
+0

注:这将是很好删除或隐藏消息somewhen还(但是这是一个任务的提问者) –

+0

谢谢!这里主要关心的是,只要字符串没有找到,该消息就会被追加,并显示多次。 – morgi