2012-05-10 6 views
0

リンクのリストがあります。リンクをクリックすると、リストに含まれる要素を数えたいと思います。これは私がコーディングしたものです:JcleryでJSONが返すオブジェクトをOnclickでカウントします。

$('a#' + dataOption.ID).click(function() { 
    $.getJSON("ProductListing/Index", data, function (product) { 
    $.each(product.ja, function (index, value) { 
     num_obj = product.ja.length; 
    }); 
    }); 
}); 
alert(num_obj); 

アラートは未定義です。

JSONの結果は次のとおりです。

{"ja": 
[ 
    {"Name":"ABC1","PictureName1":"my image name1","ID":1}, 
    {"Name":"ABC2","PictureName2":"my image name2","ID":2} 
]} 

誰もが、私は私のクリックイベントでそのJSONを数えることができるか、教えていただけます。そんなに多く。

答えて

1

あなたが投稿したコードは、クリックハンドラを作成し、すぐにalert(num_obj)を行います - num_objはどこにも宣言されていないとクリックイベント自体はまだ起きていない、num_objは、その時には不定するなっであることを考えますポイント。

にちょうどnum_objが実際に割り当てられた値を持つ最初のポイントの後、$.getJSON()機能のコールバックにアラートを移動してみてください:それはしないので、私は$.each()を削除した

$('a#' + dataOption.ID).click(function() { 
    $.getJSON("ProductListing/Index", data, function (product) { 
    var num_obj = product.ja.length; 
    alert(num_obj); 
    }); 
}); 

注意product.ja配列を繰り返し処理し、それぞれの要素に対してまたはindexまたはvalueを使用しなかったという事実は、$.each()の中には、それぞれを必要としなかったという手掛かりでした)。

+0

これはとてもうまく動作します。ありがとう、nnnnnn。 – Nothing

関連する問題