0

我正在检索一个 JSON 数组并将结果显示为一个有十个项目长的列表。但是,如果找到的结果少于十个,则它会再次循环第一行。

我的代码:

$.ajax({
    url: 'http://www.entertainmentcocktail.com/cp/index.php?area=bn2',
    dataType: 'jsonp',
    jsonp: 'jsoncallback',
    timeout: 5000,
    success: function(data, status){

        var n = 0;

        while(n<10){            
        $.each(data, function(i,item){
            var places = item.name +
            ' where you can get' +
            ' a pint of <em>'+item.pint+'</em> for only ' +
            '<span>£'+item.cost+'!</span>';
            $('#placeList').append('<li id="listitem">'+ places +'</li>');
            n++;
        });
        }
    }
});

如何让代码显示前十行收到的所有行,具体取决于哪一行较少?

4

2 回答 2

4

这就是你所需要的:

success: function(data, status){    
    $.each(data, function(i,item){
        var places = item.name +
        ' where you can get' +
        ' a pint of <em>'+item.pint+'</em> for only ' +
        '<span>£'+item.cost+'!</span>';
        if (i < 10) {
            $('#placeList').append('<li id="listitem">'+ places +'</li>');
        }
    });
}
于 2013-01-25T17:19:27.563 回答
1

你不需要那个while

$.each(data, function(i,item){
  if(i >= 10) return;

  var places = item.name +
    ' where you can get' +
    ' a pint of <em>'+item.pint+'</em> for only ' +
    '<span>£'+item.cost+'!</span>';
    $('#placeList').append('<li id="listitem">'+ places);
});

(可能有更聪明的方法来做你想做的事情,但这是你代码的快速修复)

于 2013-01-25T17:20:46.747 回答