Получить URL из результата yql - PullRequest
0 голосов
/ 02 декабря 2010

Я пытался понять, как вернуть ссылки из результатов yql, но пока единственное, что я получаю, это [объектный объект], и я пока никуда не ухожу, не могли бы вы объяснить мне, почему это происходит? ? Все, что я хочу, это отображать результаты в виде ссылок.

<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 Ответ

1 голос
/ 02 декабря 2010

Если вы сделаете console.log для возвращаемого объекта, вы увидите, что результаты на самом деле являются массивом с тремя массивами внутри.Таким образом, чтобы получить 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

...