javascript - 创建全局变量并生成随机数并在 Javascript 中调用函数时更新变量

标签 javascript html css variables

我是这个编码环境的新手,正在尝试通过练习来挑战自己。

我正在尝试创建名为 quoteNumber 的全局变量并生成一个随机数,并在每次调用该函数时更新此变量。

但是对于下面的代码,每次我调用函数 quoteNumber 变量都保持不变,并且不会更新为新的随机数。

我可以解决这个问题,将所有变量放入函数中,但由于我在不同的函数中使用这些变量,我想我最好为它创建全局变量。

你有什么建议?

var quotes = [{"quote":"Knowledge speaks, but wisdom listens.","author":"Jimi Hendrix"}];

var quoteNumber = 0 ;
var generatedQuote = quotes[quoteNumber].quote;
var generatedAuthor = quotes[quoteNumber].author;

function quoteGenerator () {
  quoteNumber = Math.floor(Math.random() * 80) + 1;
  document.getElementById("text").innerHTML = generatedQuote;
  document.getElementById("author").innerHTML = generatedAuthor;
}

function share() {
  document.getElementById("tweet-quote").attr('href', 'https://twitter.com/intent/tweet?hashtags=quotes&text=' + encodeURIComponent('"' + generatedQuote + '" ' + generatedAuthor));
}

PS- 我已经缩短了引号变体并放在这里以免造成混淆

最佳答案

调用该函数时,您正在正确更新 quoteNumber 变量。但是,generatedQuotegeneratedAuthor 仍然是你一开始设置的值。 因此,在将 quoteNumber 设置为新值后,您必须执行以下操作

generatedQuote = quotes[quoteNumber].quote;
generatedAuthor = quotes[quoteNumber].author;

同时更新这些变量。

关于javascript - 创建全局变量并生成随机数并在 Javascript 中调用函数时更新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50241364/

相关文章:

html - 如何删除 HTML 电子邮件中的链接下划线?

java - 如何使用 Java 在 Selenium Webdriver 中输入类型不是 'File' 时上传照片

javascript - d3js 盒须图 : add a single circle to plot given a point in the distribution

javascript - 将类添加到相邻的 html 元素 jquery

javascript - Angular $scope 首先设置值而不是服务,在第二个函数调用后一切正常

javascript - 在滚动上添加类不起作用?

javascript - phonegap XMLHttpRequest 响应文本在 galaxy s4 中返回空但不是 galaxy note

html - 获取对齐的文本 block 以在 div 中居中

javascript - 使用 Ajax,在 MVC 中提交时文本框不清除

CSS 移动优化不适用于移动设备