仅显示最后四个JSON对象

时间:2012-01-15 10:03:55

标签: jquery json

目前我有两个HTML部分,'标准'和'精选'。我的jQuery代码将JSON对象拆分为两个类别,并在指定的部分中显示它们,具体取决于它们是否为“特色”。但是,目前正在显示值为'featured'的每个对象。如何更改此设置,以便只在该部分中显示值为'featured'的最后四个JSON对象?

我猜它就像添加if语句一样简单,但到目前为止我的尝试还不顺利。

JSON如下:

{"blog":[
 {
    "title":"This is the title",
    "content":"And this is the content",
    "date":"01/12/11",
    "featured":"Yes"
 },
 {
    "title":"This is another title",
    "content":"And this is some more content",
    "date": "01/01/12",
    "featured":"No"
 },
 {
    // Continuation
 }
]}

当前的jQuery是:

$.getJSON("/TEST/readdb.php", function(json){
    if(json.blogs.length > 0) {
        $.each(json.blogs, function(){
            var info = '<h2>' + this['title'] + '</h2><p>' + this['content'] + '</p><p id="date">' + this['date'] + '</p>';
            if(this['featured'] == "Yes") {
                $('#featured').append(info);
            }
            else {$('#standard').append(info);
            }
        });
    }
});

2 个答案:

答案 0 :(得分:0)

很抱歉,你想要最后四个取决于哪个参数?

代码中的最后四个似乎是匹配精选=是的前4个元素,因此例如不考虑日期。

尝试写$。每种方式然后也不使用相等的比较器,尝试用f.e强制进行字符串搜索。指数。尝试首先调试它的功能名称和敌人获取参数与chrome,我写它没有测试:

$.each(json.blogs, function(KEY, VALUE){
        var info = '<h2>' + this['title'] + '</h2><p>' + this['content'] + '</p><p      id="date">' + this['date'] + '</p>';
feat = VALUE.featured;
        if(feat.indexOf('Yes')!=0) {
            $('#featured').append(info);
        }
        else {$('#standard').append(info);
        }
    }); 

答案 1 :(得分:0)

最好的方法是在readdb.php中仅从db中获取最后四个特色项。