我一直在努力了解如何从yql结果中返回链接,但到目前为止我唯一得到的是[object Object],到目前为止我还没有到达任何地方,你能不能向我解释为什么会发生这种情况?我想要的只是将结果显示为链接。
<div id="funfacts">
</div>
<script>
function funfacts(o){
var facts = document.getElementById('funfacts');
if(facts){
var data = o.query.results.a;
var out = document.createElement('a');
out.className = 'fact';
facts.appendChild(out);
out.innerHTML = data.join("<br />");
}
}
</script>
<script src="http://query.yahooapis.com/v1/public/yql?q=select%20href%20from%20html%20where%20url%3D'http%3A%2F%2Fcid-a59bebc211b678a6.office.live.com%2Fbrowse.aspx%2FPublic%2Fhi5'%20and%20xpath%3D'%2F%2Fa%5B%40id%3D%22download%22%5D'%0D%0A&format=json&diagnostics=true&callback=funfacts"></script>
我希望这个例子足以让我理解,我所要做的就是让它显示该页面的网址列表,但它只返回[object Object]行的列表。
答案 0 :(得分:1)
如果在返回对象上执行console.log,您将看到结果实际上是一个包含三个数组的数组。因此,要获取网址,您实际上需要执行类似o.query.results.a [n] .href
的操作。results: Object
a: Array[3]
0: Object
href: "http://public.blu.livefilestore.com/y1pXKbPqGSt2TkgDjLyAOoYLWSPBnYLdxVtOHoR4W0sERdCyCncGu4LR8Bg4e81W…"
__proto__: Object
1: Object
2: Object
以下是jsfiddle