1
var data = {};
data.event = [
{
    "id":"998",
    "title":"Foo",
    "thumb":"",
    "source":""
},
{
    "id":"999",
    "title":"Bar",
    "thumb":"",
    "source":""
}
]

鉴于 id=998 我需要提取“标题”的值,我对正确的语法有点迷茫。

4

4 回答 4

3

您可以使用$.each()进行迭代并检查 ID 是否匹配,然后将 title 的值写入变量。

var title;

$.each(data.event, function(i,e) {
    if (this.id==='998') {
        title=this.title;
        return false;
    }
});

小提琴

于 2012-07-28T19:28:42.063 回答
3
function titleFromId(id) {
   for (var i = 0, l = data.event.length; i < l; i += 1) {
      if (data.event[i].id === id) {
         return data.event[i].title;
      }
   }
}

var title = titleFromId('998');
于 2012-07-28T19:29:54.427 回答
2

您需要遍历event数组。对于每个项目,如果item.id是您要查找的值,则返回item.title

类似于以下内容:

function findTitleById(desiredId) {
    var title, item;
    for (var i = data.event.length - 1; i >= 0; i--){
        item = data.event[i];
        if (item.id === desiredId) {
           title = item.title;
           break;
        }
    }
    return title;
}

有更高级的方法可以做到这一点,但在尝试之前我会理解上述内容。

于 2012-07-28T19:25:24.433 回答
1

您可以使用$.each()功能:

$.each(data.event, function(i, v){
    alert(v.id + " " + v.title)
})

http://jsfiddle.net/NGALP/

于 2012-07-28T19:29:29.637 回答