$("#mainPage").live("pageinit", function () {
$("h1", this).text(title);
$.get(RSS, {}, function (res, code) {
var xml = $(res);
var items = xml.find("item");
var items = $items.length && i < 5; i++); // here the problem!!
var entry = "";
$.each(items, function (i, v) {
entry = {
title:$(v).find("title").text(),
link:$(v).find("link").text(),
description:$.trim($(v).find("encoded").text()),
category:$.trim($(v).find("category").text()),
date:$(v).find("pubDate").text().substr(0,16),
autor:$(v).find("creator").text()
};
entries.push(entry);
});
var s = '';
$.each(entries, function(i, v) {
s += '<li><a href="#contentPage" class="contentLink" data-entryid="'+i+'">' + v.title + '<br><i>' + v.autor + ' - ' + v.date + '</i></a></li>';
});
$("#linksList").append(s);
$("#linksList").listview("refresh");
});
});
问题在于,当我尝试限制添加的项目数量时 var items = $ items.length&amp;&amp;我&lt; 5;我++); javascript停止工作。 : - (
怎么做?
答案 0 :(得分:6)
var items = $items.length && i < 5; i++);
无效我认为你想要
var items = items.slice(0, 4);
就是你想要的。
https://api.jquery.com/slice/(正如我所指出的,它是一个jQuery对象)
jQuery对象本身就像一个数组;它有一个长度 属性和对象中的元素可以通过它们访问 数字索引[0]到[length-1]。请注意,jQuery对象不是 实际上是一个Javascript Array对象,所以它没有全部 真正的Array对象的方法,例如join()。
因为Javascript是从0开始的(从0开始计数)你想要元素0到4,以获得前5个元素。
答案 1 :(得分:0)
您可以使用lt(n)函数
var items = xml.find("item:lt(5)");