Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript利用数组赢得';行不通_Javascript_Jquery - Fatal编程技术网

Javascript利用数组赢得';行不通

Javascript利用数组赢得';行不通,javascript,jquery,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"; m

我正在尝试实现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>

var myQuotes=新数组();
myQuotes[0]=“文本选项1”;
myQuotes[1]=“文本选项2”;
myQuotes[2]=“文本选项3”;
myQuotes[3]=“文本选项4”;
myQuotes[4]=“文本选项5”;
myQuotes[5]=“文本选项6”;
var myRandom=Math.floor(Math.random()*myQuotes.length);
$('#myQuote').html(myQuote[myRandom]);
我试着从这里借用代码:

$('#myQuote').html(myQuote[myRandom])
改为
$('#myQuote').html(myQuotes[myRandom])

脚本应该放在
body
的末尾,以便准备
myQuote
。我建议您使用浏览器的调试模块。当代码在最后一行执行时,您会发现出现了问题

有两个潜在问题

首先,
myRandom
变量可能超过
myQuotes
数组的最大索引(5)。
myQuotes
==6的长度;因此,下面的公式将返回一个介于0和6之间的值,这将导致越界错误

var myRandom = Math.floor(Math.random() * myQuotes.length);
相反,可以像这样使用
myQuotes.length-1
(当然,这假设数组大于零,所以请执行一些长度检查):

Second,正如其他人指出的,您指的是myQuote变量,而不是myQuotes

// You have:
$('#myQuote').html(myQuote[myRandom]);

// How about:
$('#myQuote').html(myQuotes[myRandom]);

您所说的“不工作”是什么意思?调用脚本时,不存在id等于myQuote的元素(
Quote将转到此处
)。这意味着
$('#myQuote')
找不到任何元素,因此
.html(foo)
没有效果。此外,将数组编写为一个文本将更加简洁,
['a',B',C']
@PaulS。很可能。如果这真的是整个HTML页面,那么甚至连jQuery都不包括在内。你在浏览器的控制台中发现错误了吗?@Thilo也是真的,因为这种代码的问题几乎总是在元素存在之前调用。。
// You have:
$('#myQuote').html(myQuote[myRandom]);

// How about:
$('#myQuote').html(myQuotes[myRandom]);