gpt4 book ai didi

需要 JavaScript 帮助(YQL 和 JavaScript)

转载 作者:行者123 更新时间:2023-11-28 02:48:30 25 4
gpt4 key购买 nike

我有这个“改编的”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();
}
}

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

最佳答案

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

因此,要显示全部:

out.innerHTML = data.join("<br />");

这会将事实连接到一个字符串中,并用换行符分隔。

编辑添加:

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

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

关于需要 JavaScript 帮助(YQL 和 JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4327112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com