好的,我发现了很多类似的线程,但似乎找不到我需要的东西。我相信我错过了一些明显的东西,但我是JSON菜鸟,所以请帮助我。
点击我获取ID并将其存储为变量。然后我想在“messageString”中找到一个JSON对象,其中msgstring = ID。然后在#convo-title中显示该消息的主题。
这是我的JSON:
{
"messageString":[
{
"subject":"This is the message subject",
"msgstring":"001",
"attach":"shop-cart",
"message":[
{
"date-time":"June 2, 2013 12:22 pm",
"rec-name":"D. Craig",
"mbr-href":"#craig",
"msg-content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
},
{
"date-time":"June 3, 2013 12:22 pm",
"rec-name":"N. McCoy",
"mbr-href":"#mccoy",
"msg-content": "Vestibulum ultricies odio semper."
}
]
},
{
"subject":"This is a great subject",
"msgstring":"002",
"attach":"shop-cart",
"message":[
{
"date-time":"June 2, 2013 12:22 pm",
"rec-name":"D. Craig",
"mbr-href":"#craig",
"msg-content": "Lorem ipsum dolor sit amet."
}
]
},
{
"subject":"Interested in your tomatoes",
"msgstring":"003",
"attach":"shop-cart",
"message":[
{
"date-time":"June 4, 2013 12:22 pm",
"rec-name":"J. Smith",
"mbr-href":"#smith",
"msg-content": "Vestibulum vitae turpis sodales, pellentesque elit in, lobortis nisl."
},
{
"date-time":"June 5, 2013 12:22 pm",
"rec-name":"B. Wardlaw",
"mbr-href":"#wardlaw",
"msg-content": "Nunc pretium dictum justo sed luctus."
}
]
}
]}
这是我的jQuery:
$('#conv-nav li').live('click', function () {
var id = $(this).attr('id');
$.getJSON('data/msg.json', {
msgstring: id
}, function (data) {
$('.string.msg').empty();
$.each(data, function (i, item) {
var title = item.subject;
$('#convo-title').empty();
$('#convo-title').text(title);
});
});
});
我已经验证我正在获取ID并且在firebug中我确实看到它获取带有id参数的JSON文件。 #convo-title清空,但新标题不插入。
萤火虫没有出现任何错误。
HELP !!我很感激你的帮助。
答案 0 :(得分:1)
在您的代码中,您正在迭代数据,但第一条记录是messageString,您需要迭代messageString的内容。
所以,根据你的json,看来这部分:
$.each(data, function (i, item) {
var title = item.subject;
$('#convo-title').empty();
$('#convo-title').text(title);
});
应该是这样的:
$.each(data.messageString, function (i, item) {
var title = item.subject;
$('#convo-title').empty();
$('#convo-title').text(title);
});