0

リンクのリストがあります。それをクリックすると、リストに含まれている要素を数えたいと思います。これは私がコーディングしたものです:

$('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をカウントするにはどうすればよいですか?そんなにサンズ。

4

1 に答える 1

1

投稿したコードはクリックハンドラーを作成し、すぐにalert(num_obj)-を実行します。これnum_objはどこにも宣言されておらず、クリックイベント自体はまだ発生していないため、その時点では未定義であると想定されnum_objます

アラートを関数のコールバックに移動して、実際に値が割り当てられている$.getJSON()最初のポイントの直後に移動してみてください。num_obj

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

配列を反復処理して各要素をテスト$.each()することは意味がないため、削除したことに注意してください(使用しなかった、または内部で使用しなかったという事実も、それぞれが必要ないという手がかりでした) 。product.japroduct.ja.lengththisindexvalue$.each()

于 2012-05-10T01:58:48.997 に答える