我正在使用此代碼從json獲取數據。JSON檢查是否沒有數據
$.each(data.id, function(index, value){
output += '<li>'+value.title+'</li>';
}
$('#listview').html(output).listview('refresh');
有時沒有要顯示的記錄。
如何知道是否沒有記錄並顯示警報示例:alert('No records'); ?
我正在使用此代碼從json獲取數據。JSON檢查是否沒有數據
$.each(data.id, function(index, value){
output += '<li>'+value.title+'</li>';
}
$('#listview').html(output).listview('refresh');
有時沒有要顯示的記錄。
如何知道是否沒有記錄並顯示警報示例:alert('No records'); ?
假設data.id是一個數組,因爲你就可以用$。每個:
if (data.id.length == 0) {
// no data
}
的最一般的方法來檢查是否有在目標數據是使用
length
方法。
但你應該非常小心。例如,如果你的數據是按以下格式:
SourceData =[
{
ID:1,
Title:'Test1',
},
{
ID:2,
Title:'Test2',
},
{
ID:3,
Title:'Test3',
},
]
你做以下檢查:
if(SourceData.ID.length>0)
因爲某種原因(在服務器上,請求超時等錯誤)的「SourceData 「沒有定義,JavaScript錯誤將被拋出。
這就是爲什麼我使用的條件組合:
if(typeof SourceData==='undefined'|typeof SourceData.ID==='undefined'|SourceData.ID.length==0)
其次,如果有什麼不對的「SoruceData」(這是不確定的),會顯示一個消息「無數據」。或者當「SourceData」被初始化時,但是例如某人已經改變了服務器返回數據的結構(它不再是「ID」,現在是「TitleID」),不會產生錯誤。
請注意,我使用「|」而不是「||」。這意味着,如果其中一個條件是「真實的」,他的權利就不會被執行。
在一般的使用這個代碼在JavaScript來檢查是否數組不爲空:
if (myArray.length) { // javascript shortcut for data.id.length>0
alert('no elems found');
}
在特定情況下,下面的代碼應該工作:
if (data.id.length) {
$.each(data.id, function(index, value){
output += '<li>'+value.title+'</li>';
});
$('#listview').html(output).listview('refresh');
} else {
alert('no records found ');
}
希望這有助於。
我很困擾。它不應該是'$ .each(data,...)'嗎? – Alexander
例如,'if(data.id.length === 0){alert(「No records」);返回; }'。 – VisioN
揭示響應JSON的* expected *結構肯定會有所幫助 –