2012-01-29 62 views
0

我有一個基於Bing API的jQuery搜索腳本。當用戶搜索並查看他們的查詢結果時,他們將毫無問題地顯示出來。然而,當他們的搜索沒有結果時,頁面只是空白。向jQuery搜索腳本添加沒有結果消息

如何在「找不到結果」等信息中添加信息。什麼時候沒有結果來防止空白頁?

我當前的代碼是:

$(document).ready(function(){ 
    function search(){ 
     $.ajax({ 
      type:"GET", 
      url:"http://api.bing.net/json.aspx?AppId=AppIdHere&Query=SearchTermsHere&Sources=Web&Adult=Strict&Web.Count=10&JsonType=callback&JsonCallback=?", 
      dataType:"jsonp", 
      success:function(query){ 
       $("#results").html(results(query)); 
      } 
     }); 
    } 
    function results(response){ 
     var output=[]; 
     $.each(response.SearchResponse.Web.Results,function(i,result){ 
      output.push('<a href="'+result.Url+'" class="result"><div class="title">'+result.Title+'</div><div class="url">'+result.DisplayUrl+'</div><div class="desc">'+result.Description+'</div></a>'); 
     }); 
     return output.join(''); 
    } 
    search(); 
}); 

回答

0

改變結果函數的返回線路:

return (output.length == 0 ? 'No results found.' : output.join('')); 

=== UPDATE ===

如果您有一個JavaScript錯誤,將結果函數更改爲:

function results(response){ 
    if (typeof response.SearchResponse.Web.Results == 'undefined') { 
     return 'No results found.'; 
    } 
    var output=[]; 
    $.each(response.SearchResponse.Web.Results,function(i,result){ 
     output.push('<a href="'+result.Url+'" class="result"><div class="title">'+result.Title+'</div><div class="url">'+result.DisplayUrl+'</div><div class="desc">'+result.Description+'</div></a>'); 
    }); 
    return output.join(''); 
} 

,或者您需要添加一個錯誤處理:

$.ajax({ 
     ..., 
     error:function(){ 
      $("#results").html('No results found.'); 
     } 
    }); 
+0

我已經更新了我的答案。 – scessor 2012-01-29 11:43:03

0
success:function(query){ 
    if(query != null) 
     $("#results").html(results(query)); 
    else 
     $("#results").html('<p>No results found</p>'); 
}