0

我一直在尝试了解如何从 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> 

我希望这个例子足以理解,我要做的就是让它显示该页面的 url 列表,但是它只返回 [object Object] 行的列表。

4

1 回答 1

1

如果您对返回对象执行 console.log,您会看到 results 实际上是一个包含三个数组的数组。因此,要获取 url,您实际上需要执行类似 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

于 2010-12-01T21:50:50.843 回答