难以遍历JSONP数据

问题描述

| 我有以下脚本,该脚本似乎只能从循环的第一次迭代中获取值,而不能从其余的迭代中获取值:
$(document).ready(function() {
    get_jsonp_Feed();

    function get_jsonp_Feed() {
        $.ajax({
            url: \"http://query.yahooapis.com/v1/public/yql?q=%20SELECT%20*%20FROM%20html%20WHERE%20url%3D%22http%3A%2F%2Fnews.bbc.co.uk%2Fweather%2Fforecast%2F4276%3Fsearch%3Dgerrards%2520cross%26itemsPerPage%3D10%26region%3Dworld%26area%3DGerrards%2520Cross%22%20and%20xpath%20%3D%20\'%2F%2Ftable%2Ftbody%2Ftr\'&format=json&diagnostics=true&callback=cbfunc\",type: \'GET\',dataType: \'jsonp\',jsonp: \'callback\',jsonpCallback: \'cbfunc\',error: function(xhr,status,error) {
                alert(xhr.responseText);
            },success: function(data) { 
                var itemList = data.query.results.tr[0].td;

                for (var i = 0; i < 5; i++) {
                    alert(itemList[i].div.abbr.content);
                }
            }
        });
    }
});
显示displays1ѭ,然后显示
Cannot read property \'content\' of undefined
。它应该显示5个警报,分别是
Mon
Tue
Wed
Thu
Fri
。 jsfiddle:http://jsfiddle.net/DsEGT/。     

解决方法

        您想遍历
tr
元素,而不是
td
元素。进行
success
回调:
            var itemList = data.query.results.tr;

            for (var i = 0; i < 5; i++) {
                alert(itemList[i].td[0].div.abbr.content);
            }
    ,        您应该遍历各天,并获取每天的第一个属性,而不要在第一天中遍历这些属性:
var itemList = data.query.results.tr;

for (var i = 0; i < 5; i++) {
  alert(itemList[i].td[0].div.abbr.content);
}