需要JavaScript帮助(YQL和JavaScript)

需要JavaScript帮助(YQL和JavaScript),javascript,yql,Javascript,Yql,我有这个“改编”的javascript代码来显示关于任何事情的有趣事实(在本例中是关于电影和/或历史的) 但是,它一次只显示一个事实,用户需要按下按钮来显示另一个事实 我的问题是,有没有办法一次显示所有事实,而不是一次显示一个 function funfacts(o){ var facts = document.getElementById('funfacts'); facts.className = 'js'; if(facts){ var data = o.query.r

我有这个“改编”的javascript代码来显示关于任何事情的有趣事实(在本例中是关于电影和/或历史的) 但是,它一次只显示一个事实,用户需要按下按钮来显示另一个事实

我的问题是,有没有办法一次显示所有事实,而不是一次显示一个

function funfacts(o){
  var facts = document.getElementById('funfacts');
  facts.className = 'js';
  if(facts){
    var data = o.query.results.p;
    var link = facts.getElementsByTagName('a')[0];
    link.innerHTML = '(see all facts)';
    var out = document.createElement('p');
    out.className = 'fact';
    facts.insertBefore(out,link.parentNode);
    function seed(){
      var ran = parseInt(Math.random()*data.length);
      out.innerHTML = data[ran];
    }
    var b = document.createElement('button');
    b.innerHTML = 'get another fact';
    b.onclick = seed;
    link.parentNode.insertBefore(b,link);
    seed();
  }
}


变量
数据
包含数组中的所有事实。当用户单击时,函数
seed
将从数组中随机选择一项

因此,要全部显示它们:

out.innerHTML = data.join("<br />");
out.innerHTML=data.join(
);
这将事实连接成一个字符串,由换行符分隔

编辑以添加:

下面是一个完整、非常简单的网页示例,其中显示了所有项目:

<html>
<body>
<div id="funfacts">
</div>
<script>
function funfacts(o){
  var facts = document.getElementById('funfacts');
  if(facts){
    var data = o.query.results.p;
    var out = document.createElement('p');
    out.className = 'fact';
    facts.appendChild(out);
    out.innerHTML = data.join("<br />");
  }
}
</script>
<script src="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D'http%3A%2F%2Fwww.tealdragon.net%2Fhumor%2Ffacts%2Ffacts.htm'%20and%20xpath%3D'%2F%2Fli%2Fp'&format=json&diagnostics=true&callback=funfacts"></script>

</body>
</html>

函数funfacts(o){
var facts=document.getElementById('funfacts');
如果(事实){
var data=o.query.results.p;
var out=document.createElement('p');
out.className='fact';
事实。儿童(外出);
out.innerHTML=data.join(
); } }
变量
数据
包含数组中的所有事实。当用户单击时,函数
seed
将从数组中随机选择一项

因此,要全部显示它们:

out.innerHTML = data.join("<br />");
out.innerHTML=data.join(
);
这将事实连接成一个字符串,由换行符分隔

编辑以添加:

下面是一个完整、非常简单的网页示例,其中显示了所有项目:

<html>
<body>
<div id="funfacts">
</div>
<script>
function funfacts(o){
  var facts = document.getElementById('funfacts');
  if(facts){
    var data = o.query.results.p;
    var out = document.createElement('p');
    out.className = 'fact';
    facts.appendChild(out);
    out.innerHTML = data.join("<br />");
  }
}
</script>
<script src="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D'http%3A%2F%2Fwww.tealdragon.net%2Fhumor%2Ffacts%2Ffacts.htm'%20and%20xpath%3D'%2F%2Fli%2Fp'&format=json&diagnostics=true&callback=funfacts"></script>

</body>
</html>

函数funfacts(o){
var facts=document.getElementById('funfacts');
如果(事实){
var data=o.query.results.p;
var out=document.createElement('p');
out.className='fact';
事实。儿童(外出);
out.innerHTML=data.join(
); } }
修复了格式设置,使第二部分显示。修复了格式设置,使第二部分显示。再次感谢JacobM,这成功了,但是我一直显示按钮,我尝试删除它,但一旦删除,代码就会停止工作,如果你有点耐心,你介意给我解释一下如何计算吗?编辑后添加了一个完整函数的示例。有了这个函数,它不工作,它什么也不显示,我不明白为什么不工作,你愿意解释一下吗?我终于让它工作了,我所要做的就是删除按钮代码并留下种子();有人打电话/请求,再次感谢JacobM!很抱歉,遗漏了一个问题:保存事实列表的元素的“追加”依赖于我已删除的“链接”元素。更新我的函数以修复--请重试。再次感谢JacobM,这成功了,但是我一直显示按钮,我尝试删除它,但一旦我这样做,代码就会停止工作,如果您有点耐心,您是否介意向我解释如何计算它?编辑以添加完整函数的示例。使用该函数,它不工作,它只是不显示任何东西,我不明白为什么不,你想解释一下吗?我终于让它工作了,我所要做的就是删除按钮代码并留下种子();有人打电话/请求,再次感谢JacobM!很抱歉,遗漏了一个问题:保存事实列表的元素的“追加”依赖于我已删除的“链接”元素。已将我的函数更新为修复--请重试。