2010-12-01 159 views
0

我一直在試圖理解如何從yql結果返回鏈接,但到目前爲止我得到的唯一東西是[object Object],而且我目前還沒有找到任何地方,你可以關心向我解釋爲什麼會發生這種情況?我只想將結果顯示爲鏈接。從yql結果中檢索url

<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列表,但是它只返回[對象的對象]行的列表。

回答

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

+0

我已經成功地設法使鏈接出現在更換data.join與[data [0] .href] .join,然而,無論如何,使任何數目的[n]?例如,假設我有100個鏈接,將大量工作寫下所有100個數據[n] .href!是不是有任何「黑客」告訴腳本顯示所有存在的結果? – Shadow 2010-12-01 22:58:57