目前我有两个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);
}
});
}
});
答案 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中获取最后四个特色项。