4

jQueryでajaxを使用して型のデータを取得しようとしているjsonので、次のコードを書きました:

$.ajax({
    url: link.attr('href'),
    type: 'post',
    data: 'post=true',
    dataType: 'json',
    success: function(data){
        if (data.length > 0) {
            ldLayer.fadeOut('slow');
        }else{
            alert('no data');
        }
    }
});

しかし、その意志dataは真実であり、実行されます!nullifldLayer.fadeOut('slow');

更新:console.log(data)結果は次 のとおりです。[null]

4

2 に答える 2

4

結果の配列が返されます。あなたが説明した問題のケースでは、単一のnull要素を持つ配列を取得しています。空の配列 ( []) の長さは 0 ですが、null 要素が 1 つだけの配列 ( [null]) の長さは 1 です。

クライアントでは、配列の要素のいずれかが non- であるかどうかを確認できますnull

success: function(data){
    var foundSomething = false;

    for(var i=0; i<data.length; ++i) {
        if(data[i] !== null) foundSomething = true;
        break;
    }

    if(foundSomething) {
        ldLayer.fadeOut('slow');
    }else{
        alert('no data');
    }
}

ただしnull、サーバー側のコードを修正して、要素を含む配列を返さないようにすることをお勧めします。ただし、サーバー コードを制御できない場合は、上記で説明したクライアント側のソリューションが最適です。

于 2013-05-28T14:44:59.450 に答える
2

このように簡単に確認してください

if (data)   {
    ldLayer.fadeOut('slow');
} else {
    alert('no data');
}
于 2013-05-28T14:34:29.157 に答える