JavaScript: 限制项目数量

3

抱歉,我在JavaScript方面还是新手。我正在编写一个简单的RSS阅读器,但我想将订阅源的数量限制为5个条目,因为我的目标站点可能有100个或更多。

以下是代码:

$("#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 && i < 5; i++); javascript停止工作了。 :-(
如何解决?

控制台有任何错误吗?例如SyntaxError之类的错误。 - Hacketo
无效的 JavaScript... - Michal Paszkiewicz
1
我也是StackOverflow的新手。:) 如果我在本地网络礼仪方面犯了错误,请多多包涵。感谢Thomas!你的解决方案很有效。再次感谢。 - maxlinux2000
2个回答

7

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 对象的方法,比如 join()。

因为 JavaScript 是基于 0 的(从 0 开始计数),所以你需要获取元素 0 到 4,以获得前五个元素。


我同意,但这是一个 jQuery 的问题,需要处理 jQuery 集合(顺便说一下,我没有投反对票) - billyonecan

0
你可以使用lt(n)函数。
var items = xml.find("item:lt(5)");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接