我已经查找了很多站点和线程,但是找不到我的问题的答案。
我的JSON看起来像这样:
{
"Pizza Margharita": {
"price1": "4,50 €"
},
"Pizza Caprese ": {
"price1": "4,00 €"
}
}
我的jQuery函数是这样的:
$(function() {
$.getJSON('data/food01.json', function(data) {
$.each(data, function(name, price) {
$('section#food01').find('ul').append('<li><a href="#order"><h3>'+name+'</h3><span>'+price.price1+'</span></a></li>');
});
});
var food01size = $('#food01 ul li a').length;
$('#food01 li a').live('click',function(){
alert(food01size);
});
});
我需要获得li或元素的.length。 foodsize01的值始终为“ 0”。那是因为数据是异步加载的。
任何人都想出什么问题了吗?
最佳答案
如您所说,问题是因为您正在异步加载数据。在添加任何元素之前触发该计数。您需要将该代码移至成功回调函数中:
$(function() {
$.getJSON('data/food01.json', function(data) {
$.each(data, function(name, price) {
$('section#food01').find('ul').append('<li><a href="#order"><h3>'+name+'</h3><span>'+price.price1+'</span></a></li>');
});
var food01size = $('#food01 ul li a').length;
$('#food01 li a').live('click',function(){
alert(food01size);
});
});
});