Javascript js/jquery;未定义,执行顺序?

Javascript js/jquery;未定义,执行顺序?,javascript,Javascript,我一直在尝试使用一些图像创建一个随机的禁止重复 有时,我的参数getRandomImage会抛出一条undefined消息;发生的情况是,数字变得大于数组长度。(尽管我一直认为我对长度的定义是明确的) 我认为这是因为我所有的代码都在同一时间执行/我的处理顺序不对 任何帮助都会很好,如果还不够的话,我已经上传了我所知道的 var-imageContainer=新数组; imageContainer[0]=“url(images/cake1.jpg)”; imageContainer[1]=“ur

我一直在尝试使用一些图像创建一个随机的禁止重复

有时,我的参数
getRandomImage
会抛出一条
undefined
消息;发生的情况是,数字变得大于数组长度。(尽管我一直认为我对长度的定义是明确的)

我认为这是因为我所有的代码都在同一时间执行/我的处理顺序不对

任何帮助都会很好,如果还不够的话,我已经上传了我所知道的

var-imageContainer=新数组;
imageContainer[0]=“url(images/cake1.jpg)”;
imageContainer[1]=“url(images/cake2.jpg)”;
imageContainer[2]=“url(images/cake4.jpg)”;
imageContainer[3]=“url(images/joke1.jpg)”;
imageContainer[4]=“url(images/joke2.jpg)”;
imageContainer[5]=“url(images/joke3.jpg)”;
imageContainer[6]=“url(images/joke4.jpg)”;
imageContainer[7]=“url(images/joke5.jpg)”;
imageContainer[8]=“url(images/penguin1.jpg)”;
imageContainer[9]=“url(images/penguin3.jpg)”;
imageContainer[10]=“url(images/penguin4.jpg)”;
var emptyContainer=[0];
函数更改图像(getRandomImage){
getRandomImage=Math.floor(Math.random()*imageContainer.length);
$(“#imgdiv”).css(“背景图像”,imageContainer[getRandomImage]);
imageContainer.splice(getRandomImage,1);
splice(getRandomImage,0,imageContainer[getRandomImage]);
if(getRandomImage

身体{
保证金:0自动;
}
#背景容器{
位置:绝对位置;
宽度:100%;
身高:100%;
背景:#ebf1f6;
背景:线性梯度(至底部,#ebf1f6 0%,#abd3ee 27%,#abd3ee 27%,#89c3eb 63%,#89c3eb 63%,#d5ebfb 100%);
}
#主容器{
位置:绝对位置;
左:225px;
宽度:75%;
身高:100%;
保证金:0自动;
背景:url(“images/ylwpaper.png”);
背景大小:100%;
}
#主按钮{}引号{}imgdiv{
宽度:400px;
高度:550px;
背景色:无;
大纲:无;
位置:相对位置;
利润率:100px 900px;
}

Jquery示例
需要爱
测试


对于初学者,您需要颠倒以下两条语句:

  imageContainer.splice(getRandomImage, 1);
  emptyContainer.splice(getRandomImage, 0, imageContainer[getRandomImage]);
为此:

  emptyContainer.splice(getRandomImage, 0, imageContainer[getRandomImage]);
  imageContainer.splice(getRandomImage, 1);

在您的版本中,您将从阵列中删除选定的图像,然后在删除后,您将尝试访问它。

我几乎可以肯定问题在于第25行的打字错误。试着改变

if (getRandomImage < imageContainer.length) {
    getRandomImage == 0;

}
if(getRandomImage

if(getRandomImage
拼接imagecontainer数组时,它会导致其长度减少,并且可能是在您引用一个不再存在的索引时

请使用您的代码制作一个JSFIDLE,并将URL粘贴到您的HTML中的几个小语法错误。您缺少结束标记
,并且您的
标记中包含随机
img
属性。此外,我会将所有函数的逻辑置于该条件下。
if (getRandomImage < imageContainer.length) {
    getRandomImage = 0;

}