从yql结果中检索url

时间:2010-12-01 21:12:57

标签: javascript yql

我一直在努力了解如何从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]行的列表。

1 个答案:

答案 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