Javascript 在另一个函数中使用合并数组

Javascript 在另一个函数中使用合并数组,javascript,jquery,arrays,image,Javascript,Jquery,Arrays,Image,我不知道该怎么说,但希望你能明白我的意思。我试图使用If语句将图像数组的内容合并到另一个数组中,然后有一个函数使用该数组进行图片幻灯片放映 我觉得我应该提到这是一项学校作业,所以如果我没有,我不想更改chgSlide函数 我认为我的问题是,当我有var myPix=[]时,它会清除合并。但我不确定真正的解决方案是什么,我尝试过只做myPix=redCarsPic,但没有成功 另外,在代码中,我注释了我合并数组的方法,我不确定某个方法是否比另一个更好,我有点偏爱jquery,如果可以的话,我希望能

我不知道该怎么说,但希望你能明白我的意思。我试图使用If语句将图像数组的内容合并到另一个数组中,然后有一个函数使用该数组进行图片幻灯片放映

我觉得我应该提到这是一项学校作业,所以如果我没有,我不想更改
chgSlide
函数

我认为我的问题是,当我有
var myPix=[]
时,它会清除合并。但我不确定真正的解决方案是什么,我尝试过只做
myPix=redCarsPic
,但没有成功

另外,在代码中,我注释了我合并数组的方法,我不确定某个方法是否比另一个更好,我有点偏爱jquery,如果可以的话,我希望能够保持这种方法

这是我的脚本块:

function radioCheck(){
if (document.getElementById("redCars").checked){
    //alert("red"); Array.prototype.push.apply(myPix,redCarsPic);
    //alert("red"); myPix.push.apply(myPix, redCarsPic);
    $.merge(myPix,redCarsPic)
    alert(redCarsPic+"  r2");

};
if (document.getElementById("blueCars").checked){
    alert("blue"); myPix.push.apply(myPix, blueCarsPic);
};
if (document.getElementById("greenCars").checked){
    alert("green"); myPix.push.apply(myPix, greenCarsPic);
};
}

var myPix=[];
thisPic=0;
imgCt=myPix.length-1;

alert(myPix+"mpixalt")


function chgSlide(direction){
if(document.images){
    thisPic=thisPic+direction
        if(thisPic>imgCt){
            thisPic=0
        }
        if(thisPic<0){
            thisPic-imgct
        }
document.myPicture.src=myPix[thisPic]

}
}

var redCarsPic =["images/redCarsA.jpg","images/redCarsB.jpg","images/redCarsC.jpg","images/redCarsD.jpg","images/redCarsE.jpg"];
var blueCarsPic =["images/blueCarsA.jpg","images/blueCarsB.jpg","images/blueCarsC.jpg","images/blueCarsD.jpg","images/blueCarsE.jpg"];
var greenCarsPic =["images/greenCarsA.jpg","images/greenCarsB.jpg","images/greenCarsC.jpg","images/greenCarsD.jpg","images/greenCarsE.jpg"];
功能无线电检查(){
if(document.getElementById(“redCars”).已选中){
//警报(“红色”);Array.prototype.push.apply(myPix,redCarsPic);
//警报(“红色”);myPix.push.apply(myPix,redCarsPic);
$.merge(myPix,redCarsPic)
警报(redCarsPic+“r2”);
};
if(document.getElementById(“blueCars”).已选中){
警报(“蓝色”);myPix.push.apply(myPix,blueCarsPic);
};
如果(选中document.getElementById(“绿色汽车”)){
警报(“绿色”);myPix.push.apply(myPix,greenCarsPic);
};
}
var myPix=[];
thisPic=0;
imgCt=myPix.length-1;
警报(myPix+“mpixalt”)
功能chgSlide(方向){
if(document.images){
thisPic=thisPic+方向
如果(此PIC>imgCt){
thisPic=0
}

如果(thisPic当您按下表单中的提交按钮时,它会尝试提交表单,从而导致页面被重新加载,从而将您的所有状态重新初始化回一个新页面,该页面是一个空数组

您可以通过将按钮更改为普通按钮(而不是提交按钮)或阻止表单提交的默认操作来停止表单提交

最简单的更改就是更改以下内容:

<input type="submit" id="submitButton" value="Go!" onclick="radioCheck()"/>

为此:

<input type="button" id="submitButton" value="Go!" onclick="radioCheck()"/>

如果没有“提交”按钮,表单将不会提交,页面也不会重新加载

工作演示:



仅供参考,您也可以在
radioCheck()中取消表单提交
函数,但由于您永远不想提交表单,因此最好不要在一开始就有提交按钮。

什么是
redCarsPic
?它是一个数组?还是一个图像?@jfriend00:它是全局定义的;向下滚动。:)您可以使用
.splice()
.push()
将另一个图像数组添加到现有数组中。@jfriend00这是一个图像数组sop,我不明白你的问题是什么。你告诉我们你在做什么,但不是问题是什么。
$。merge
确实应该将第二个数组合并到第一个数组中(正如@jfriend00提到的注释掉的代码一样)。出了什么问题?@gchian-第二个警报来自重新加载页面时,因此它再次具有空数组。请记住,Javascript状态不会从一个页面加载到下一个页面。每次加载页面时,它都会重新开始。您的表单提交在运行
radioCheck()后立即重新加载页面
。是的,谢谢!@jfriend00