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.ja数组并测试product.ja.length每个元素是没有意义的(你没有使用thisorindexvalue在里面的事实$.each()也是你不需要 each 的线索) .

于 2012-05-10T01:58:48.997 回答