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