我正在使用此代码从 json 获取数据。
$.each(data.id, function(index, value){
output += '<li>'+value.title+'</li>';
}
$('#listview').html(output).listview('refresh');
有时没有要显示的记录。
我如何知道是否没有记录并显示警报示例:alert('No records'); ?
我正在使用此代码从 json 获取数据。
$.each(data.id, function(index, value){
output += '<li>'+value.title+'</li>';
}
$('#listview').html(output).listview('refresh');
有时没有要显示的记录。
我如何知道是否没有记录并显示警报示例:alert('No records'); ?
我假设它data.id
是一个数组,因为你$.each
在它上面使用过:
if (data.id.length == 0) {
// no data
}
通常在 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 ');
}
希望这可以帮助。
检查对象中是否有数据的最通用方法是使用
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”有问题(未定义),将显示一条消息“No Data”。或者当“SourceData”被初始化,但是例如有人改变了服务器返回数据的结构(不再是“ID”,现在是“TitleID”)不会产生错误。
请注意,我使用的是“|” 而不是“||”。这意味着,如果其中一个条件为“真”,则他的条件权将不会被执行。