Javascript利用数组将无法正常工作

时间:2015-09-02 02:01:18

标签: javascript jquery

我正在尝试实现一种效果,其中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

2 个答案:

答案 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]);