我正在尝试实现一种效果,其中6个文本选项中的一个在加载/刷新时随机出现。
<html>
<body>
<script>
var myQuotes = new Array();
myQuotes[0] = "text option 1";
myQuotes[1] = "text option 2";
myQuotes[2] = "text option 3";
myQuotes[3] = "text option 4";
myQuotes[4] = "text option 5";
myQuotes[5] = "text option 6";
var myRandom = Math.floor(Math.random()*myQuotes.length);
$('#myQuote').html(myQuote[myRandom]);
</script>
</body>
</html>
我尝试从这里借用代码:https://forum.jquery.com/topic/how-can-i-show-a-different-quote-at-random-on-page-refresh
答案 0 :(得分:0)
$('#myQuote').html(myQuote[myRandom]);
改成
$('#myQuote').html(myQuotes[myRandom]);
该脚本应放在body
的末尾,以便myQuote
准备就绪。我建议你使用浏览器的调试模块。当代码在最后一行执行时,你会发现问题出错了。
答案 1 :(得分:0)
有两个潜在的问题。
首先,您的myRandom
变量可能超过myQuotes
数组的最大索引(5)。 myQuotes
的长度== 6;因此,下面的公式将返回介于0和 6 之间的值,这将导致超出范围的错误。
var myRandom = Math.floor(Math.random() * myQuotes.length);
相反,像这样使用myQuotes.length - 1
(当然假定你的数组大于零,所以做一些长度检查):
var myRandom = Math.floor(Math.random() * (myQuotes.length - 1));
第二,正如其他人所指出的,您指的是 myQuote 变量,而不是 myQuotes 。
// You have:
$('#myQuote').html(myQuote[myRandom]);
// How about:
$('#myQuote').html(myQuotes[myRandom]);