2

我试图将可见的列表视图项目的数量限制为 5。机场变量是一个结构为 jsonp 的字符串。代码如下所示,但我无法弄清楚如何限制列表视图中出现的项目数量。我需要限制这个数字,因为 airports 变量包含数千个项目。谢谢你的帮助!

$( "#destinationListview" ).on( "listviewbeforefilter", function ( e, data ) {
    var $ul = $( this ),
        $input = $( data.input ),
        value = $input.val(),
        html = "";
    $ul.html( "" );
    if ( value && value.length > 3 ) {
        $ul.html( "<li></li>" );
        $ul.listview( "refresh" );
        $.each( airports, function ( i, val ) {
             html += "<li class='destination' id='" + val.code + "'>" + val.name + ", " + val.location + "</li>";
        });
        $ul.html( html );
        $ul.listview( "refresh" );
        $ul.trigger( "updatelayout");

        $(".destination").click(function() {
            $( data.input ).val($(this).attr("id"));
            $("#destination").val($(this).attr("id"));
            $("#destinationListview li").hide();
        });
    }
});
4

2 回答 2

0

我猜机场是一个数组,所以我在这里做了一个简单的例子:http: //jsfiddle.net/av94U/

您要做的是将要在ul. 正如您所说,您只希望 5 个可见,因此您应该通过从机场数组中提取要在列表中显示的五个机场,例如:

var listItems = airports.length > 5 ? airports.slice(-5) : airports;

然后listItems在你的$.each( airports, ...)-call 中使用。

于 2013-05-08T17:35:50.817 回答
0

要仅显示前五个列表项,它将是这样的

'''javascript
var listItems = airports.length > 5 ? airports.slice(0,5) : airports;
'''

于 2015-08-13T03:29:46.187 回答