当我将JavaScript块添加到函数中时,它不起作用。有人能解释一下原因吗?
我成功地制作了这个 当我点击“随机化”按钮时,它会产生5个随机整数,用于三个图表和“计数”列表中的数据点,图表都会立即刷新/更新。那部分很好用 然而,在右边列表的底部,你会看到它写着“动物是:…”,上面有一个动物的名字和一个数字。此数据通过以下方式从Google工作表中提取:当我将JavaScript块添加到函数中时,它不起作用。有人能解释一下原因吗?,javascript,Javascript,我成功地制作了这个 当我点击“随机化”按钮时,它会产生5个随机整数,用于三个图表和“计数”列表中的数据点,图表都会立即刷新/更新。那部分很好用 然而,在右边列表的底部,你会看到它写着“动物是:…”,上面有一个动物的名字和一个数字。此数据通过以下方式从Google工作表中提取: function getRndInteger (min, max) { return Math.floor(Math.random() * (max - min)) + min } var k var r r =
function getRndInteger (min, max) {
return Math.floor(Math.random() * (max - min)) + min
}
var k
var r
r = getRndInteger(2, 6)
const onDataLoaded = (data) => {
const gscontent = data.feed.entry.find((entry) => entry.title.$t == 'A' + r).content.$t
k = gscontent
document.getElementById('data').innerHTML = 'The Animal Is: ' + k + ' (' + r + ')'
}
r = getRndInteger(2,6)
const onDataLoaded = (data) => {
const x = r;
const gscontent = data.feed.entry.find((entry) => entry.title.$t == 'A'+x).content.$t
k = gscontent
document.getElementById('data').innerHTML = 'The Animal Is: ' + k + ' (' + x + ')'
}
这也将在页面的下一页显示:
<script src="https://spreadsheets.google.com/feeds/cells/1dy1jneioOYWWanx2iW_FdaSxfXIf1h_d5sO7FB1LG4Q/1/public/basic?alt=json-in-script&callback=onDataLoaded"></script>
它基本上在我的谷歌电子表格中查找A2和A5之间的一个随机单元格,并返回该单元格中动物的名称。电子表格可在此处找到:
当页面加载时,以及当我刷新(F5)页面时,这会起作用,但我要做的是使其在我点击随机按钮时,以及生成新数据点和刷新三个图形时,也返回另一个动物名称。但是,当我尝试将上面的代码添加到相关函数时,它似乎不起作用
整个页面看起来像:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="mystyle.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-sm-3">
<div class="corner"><h1>Bar & Line</h1><canvas id="myChart" height="200"></canvas></div>
</div>
<div class="col-sm-3">
<div class="corner"><h1>Doughnut</h1><canvas id="myDoughnutChart" height="200"></canvas></div>
</div>
<div class="col-sm-3">
<div class="corner"><h1>Pie</h1><canvas id="myPieChart" height="200"></div>
</div>
<div class="col-sm-3">
<div class="corner">
<h2>Count</h2>
<p id="numa"></p>
<p id="numb"></p>
<p id="numc"></p>
<p id="numd"></p>
<p id="nume"></p>
<p id="data"></p>
<button type="button" class="btn btn-success" onclick="myFunction()">Randomize</button>
</div>
</div>
</div>
</div>
<script>
var a
var b
var c
var d
var e
a = Math.floor(Math.random() * 101);
b = Math.floor(Math.random() * 101);
c = Math.floor(Math.random() * 101);
d = Math.floor(Math.random() * 101);
e = Math.floor(Math.random() * 101);
document.getElementById("numa").innerHTML = 'Africa: ' + a;
document.getElementById("numb").innerHTML = 'Asia: ' + b;
document.getElementById("numc").innerHTML = 'Europe: ' + c;
document.getElementById("numd").innerHTML = 'Latin America: ' + d;
document.getElementById("nume").innerHTML = 'North America: ' + e;
function myFunction() {
a = Math.floor(Math.random() * 101);
b = Math.floor(Math.random() * 101);
c = Math.floor(Math.random() * 101);
d = Math.floor(Math.random() * 101);
e = Math.floor(Math.random() * 101);
document.getElementById("numa").innerHTML = 'Africa: ' + a;
document.getElementById("numb").innerHTML = 'Asia: ' + b;
document.getElementById("numc").innerHTML = 'Europe: ' + c;
document.getElementById("numd").innerHTML = 'Latin America: ' + d;
document.getElementById("nume").innerHTML = 'North America: ' + e;
myChart.data.datasets[0].data[0] = a;
myChart.data.datasets[0].data[1] = b;
myChart.data.datasets[0].data[2] = c;
myChart.data.datasets[0].data[3] = d;
myChart.data.datasets[0].data[4] = e;
myChart.data.datasets[1].data[0] = a;
myChart.data.datasets[1].data[1] = b;
myChart.data.datasets[1].data[2] = c;
myChart.data.datasets[1].data[3] = d;
myChart.data.datasets[1].data[4] = e;
myChart.update();
myDoughnutChart.data.datasets[0].data[0] = a;
myDoughnutChart.data.datasets[0].data[1] = b;
myDoughnutChart.data.datasets[0].data[2] = c;
myDoughnutChart.data.datasets[0].data[3] = d;
myDoughnutChart.data.datasets[0].data[4] = e;
myDoughnutChart.update();
myPieChart.data.datasets[0].data[0] = a;
myPieChart.data.datasets[0].data[1] = b;
myPieChart.data.datasets[0].data[2] = c;
myPieChart.data.datasets[0].data[3] = d;
myPieChart.data.datasets[0].data[4] = e;
myPieChart.update();
}
</script>
<script>
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
var k
var r
r = getRndInteger(2, 6)
const onDataLoaded = (data) => {
const gscontent = data.feed.entry.find((entry) => entry.title.$t == 'A' + r).content.$t
k = gscontent
document.getElementById('data').innerHTML = 'The Animal Is: ' + k + ' (' + r + ')'
}
</script>
<script src="https://spreadsheets.google.com/feeds/cells/1dy1jneioOYWWanx2iW_FdaSxfXIf1h_d5sO7FB1LG4Q/1/public/basic?alt=json-in-script&callback=onDataLoaded"></script>
<script src="ctx.js"></script>
<script src="ctx2.js"></script>
<script src="ctx3.js"></script>
</body>
</html>
酒吧和酒吧
炸圈饼
馅饼
计数
随机化
变量a
变量b
变量c
变量d
变量e
a=数学地板(数学随机()*101);
b=数学地板(数学随机()*101);
c=数学地板(数学随机()*101);
d=数学地板(数学随机()*101);
e=数学地板(数学随机()*101);
document.getElementById(“numa”).innerHTML='Africa:'+a;
document.getElementById(“numb”).innerHTML='Asia:'+b;
document.getElementById(“numc”).innerHTML='Europe:'+c;
document.getElementById(“numd”).innerHTML='拉丁美洲:'+d;
document.getElementById(“nume”).innerHTML='北美:'+e;
函数myFunction(){
a=数学地板(数学随机()*101);
b=数学地板(数学随机()*101);
c=数学地板(数学随机()*101);
d=数学地板(数学随机()*101);
e=数学地板(数学随机()*101);
document.getElementById(“numa”).innerHTML='Africa:'+a;
document.getElementById(“numb”).innerHTML='Asia:'+b;
document.getElementById(“numc”).innerHTML='Europe:'+c;
document.getElementById(“numd”).innerHTML='拉丁美洲:'+d;
document.getElementById(“nume”).innerHTML='北美:'+e;
myChart.data.datasets[0]。数据[0]=a;
myChart.data.datasets[0]。数据[1]=b;
myChart.data.datasets[0]。数据[2]=c;
myChart.data.dataset[0]。数据[3]=d;
myChart.data.datasets[0]。数据[4]=e;
myChart.data.datasets[1]。数据[0]=a;
myChart.data.datasets[1]。数据[1]=b;
myChart.data.dataset[1].data[2]=c;
myChart.data.datasets[1].data[3]=d;
myChart.data.dataset[1].data[4]=e;
myChart.update();
myDoughnutChart.data.datasets[0]。数据[0]=a;
myDoughnutChart.data.datasets[0]。数据[1]=b;
myDoughnutChart.data.datasets[0]。数据[2]=c;
myDoughnutChart.data.datasets[0]。数据[3]=d;
myDoughnutChart.data.datasets[0]。数据[4]=e;
myDoughnutChart.update();
myPieChart.data.datasets[0]。数据[0]=a;
myPieChart.data.dataset[0]。数据[1]=b;
myPieChart.data.datasets[0]。数据[2]=c;
myPieChart.data.datasets[0]。数据[3]=d;
myPieChart.data.datasets[0]。数据[4]=e;
myPieChart.update();
}
函数getRndInteger(最小值、最大值){
返回Math.floor(Math.random()*(max-min))+min;
}
变量k
变量r
r=getRndInteger(2,6)
常量onDataLoaded=(数据)=>{
const gscontent=data.feed.entry.find((entry)=>entry.title.$t=='A'+r).content.$t
k=谷胱甘肽含量
document.getElementById('data').innerHTML='动物是:'+k+'('+r+')'
}
每次调用r
时,它都会给您一个随机值,因此您可以在x
中一次存储一个r
值,然后按如下方式使用:
function getRndInteger (min, max) {
return Math.floor(Math.random() * (max - min)) + min
}
var k
var r
r = getRndInteger(2, 6)
const onDataLoaded = (data) => {
const gscontent = data.feed.entry.find((entry) => entry.title.$t == 'A' + r).content.$t
k = gscontent
document.getElementById('data').innerHTML = 'The Animal Is: ' + k + ' (' + r + ')'
}
r = getRndInteger(2,6)
const onDataLoaded = (data) => {
const x = r;
const gscontent = data.feed.entry.find((entry) => entry.title.$t == 'A'+x).content.$t
k = gscontent
document.getElementById('data').innerHTML = 'The Animal Is: ' + k + ' (' + x + ')'
}
加载电子表格时,传递一个名为
callback
的查询参数,该参数基本上告诉电子表格在加载完成时调用全局函数,因此onDataLoaded
是一个在加载电子表格时获取数据的函数
为了使该数据能够被任何其他函数访问,您首先必须将该数据作为全局变量公开
以下是仅脚本部分的示例(不含图表代码):
以下是基于您的代码的JSFIDLE(注意:我注释掉了没有图表文件无法工作的代码):
代码本身存在多个问题,但我只做了影响您问题的更改。
下面是一个小的变化概述:
- 我添加了一个名为
的新变量,它充当保存电子表格数据的全局变量spreadSheetData
仅设置全局变量并调用onDataLoaded
myFunction
现在包括所有随机化逻辑,包括动物选择myFunction