2012-05-10 45 views
0

我有一个链接列表,当我点击它时,我想计算列表中包含的元素。这是我编码:Onclick计数在JQuery中通过JSON返回的对象

$('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在我的单击事件。 Thans非常。

回答

1

你已经发布的代码立即创建一个click处理函数,然后做一个alert(num_obj) - 因为num_obj不被任何声明,并单击事件本身还没有发生,num_obj应该那是未定义点。

尝试警报迁入$.getJSON()功能的回调,只是在那里num_obj实际上有赋值第一点后:我已经删除了$.each(),因为它不

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

注对每个元素迭代product.ja阵列和测试product.ja.length是有意义的(事实上,您没有在$.each()内使用thisindexvalue也是您不需要每个元素的线索)。

+0

好吧,它现在工作得很好。谢谢你nnnnnn。 – Nothing