0

JSON配列を取得し、結果を10項目の長さのリストとして表示しています。ただし、検出された結果が10未満の場合は、最初の行で再度ループします。

私のコード:

$.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++;
        });
        }
    }
});

どちらが少ないかに応じて、最初の10行または受信したすべての行のいずれかを表示するコードを取得するにはどうすればよいですか?

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 に答える