2

このコードを使用してjsonからデータを取得しています。

$.each(data.id, function(index, value){

output += '<li>'+value.title+'</li>';

}

$('#listview').html(output).listview('refresh');

表示するレコードがない場合もあります。

レコードがないかどうかを確認し、アラートの例を表示するにはどうすればよいですか: alert('No records'); ?

4

3 に答える 3

4

data.idあなたがそれに使用したので、私はそれが配列であると仮定しています$.each

if (data.id.length == 0) {
  // no data
}
于 2012-09-23T08:59:38.903 に答える
3

一般に、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 ');
    }

お役に立てれば。

于 2012-09-23T09:24:36.203 に答える
1

オブジェクトにデータがあるかどうかを確認する最も一般的な方法は、

 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」になっている)、エラーは生成されません。

「|」を使用していることに注意してください。「||」の代わりに。つまり、条件の 1 つが「真」の場合、その条件の権利は実行されません。

于 2012-09-23T09:09:59.140 に答える