很抱歉问这个可能是一个非常明显的问题,我一整天都在绞尽脑汁+我对 JQuery 和 JavaScript 非常陌生。
我正在运行以下命令:-
<script type="text/javascript">
$(function() {
$.getJSON(
"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22UTG.L%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?",
function(data) {
$.each(data.query.results.row, function(index, item){
$('#quotes')
.append(
$('<p/>')
.append($('<span class="left"/>').text(item.symbol))
.append($('<span class="right"/>').text('$'+item.price))
);
});
}
);
});
</script>
我得到对象 undefined variable 名称,i = 0,长度= object.length;来自 firebug - 有人能帮我吗?
最佳答案
JSON 结构不知道 query.results.row,但知道 query.results.quote。这有效:
console.log(data);
var quotes = data.query.results.quote;
for (var q in quotes) {
$('#quotes')
.append(
$('<p/>')
.append($('<span class="left"/>').text(q))
.append($('<span class="right"/>').text('$' + quotes[q]))
);
}
});
您调用的不是 JSON 资源,而是 JSONP 资源。 url 的回调参数应该是一个函数名称,并且您应该使用 $.getScript。
myCallback = function(jsonData) {
...
}
$.getScript("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22UTG.L%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=myCallback");
关于jQuery 对象未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1053371/