考慮下面的示例數據有條件地顯示結果,我需要按類型的結果:的關鍵
{
"count": 50,
"data": [{
"id": "title",
"image": "https://url-to-image.jpg",
"permalink": "/folder/bob/",
"text": "lots of text",
"title": "Bob",
"type": "User"
}, {
"id": "title2",
"image": "https://url-to-image2.jpg",
"permalink": "/folder/joe/",
"text": "lots of text here",
"title": "Joe",
"type": "Article"
}, {
"id": "title3",
"image": "https://url-to-image3.jpg",
"permalink": "/attorneys/jim/",
"text": "lots of text here",
"title": "Jim",
"type": "Blog"
}]
}
我試圖運行情況,如果類型中的某一個,顯示這些文章:
$("#searchterm").keyup(function(e) {
var q = $("#searchterm").val();
//Only begin search with at least 3 characters.
if(q.length > 3){
ajax_search();
}
//Send search query
function ajax_search(){
$.getJSON("http://url-to-search?q=" + q, {
dataType:'jsonp'
},
//Get results and make 'em look good
function(data) {
console.log(data);
$(".results").empty();
// $(".results").append("Results for <b> " + q + "</b>");
$.each(data.data, function(i, data) {
if(data.type === 'Article'){
$(".articles").append("<li><a href=localhost:4000" + data.permalink + ">" + data.title + "</a></li>");
} else if(data.type === 'Blog'){
$(".blog").append("<li><a href=localhost:4000" + data.permalink + ">" + data.title + "</a></li>");
}
});
});
}
});
但是,結果出現空,雖然有結果沒有條件陳述。
最後,結果應該是這樣的:
文章
喬
博客
吉姆
可能不是問題,但在嵌套函數中使用相同名稱的參數通常是一個壞主意(在您的情況下爲'data')。此外,您正在事件處理程序中定義一個函數;這將導致該函數在每個鍵盤上被重新定義,這可能不是你想要的。 –
我想問問題的更直接的方法是,我怎樣才能修復我的'if/else'條件來檢查數據數組中每個對象的'type'並顯示基於該類型的結果。 – Matt
您可以使用'$ .grep'方法來過濾這些結果。 –