JavaScript:显示多种T恤颜色背面图像的函数
我正在制作一个简单的网页,允许用户选择t恤及其颜色。我希望代码能够在可能的情况下显示每种颜色T恤的背面图像,并且在第二个语句中,能够将其旋转回正面 例如,大致如下:JavaScript:显示多种T恤颜色背面图像的函数,javascript,Javascript,我正在制作一个简单的网页,允许用户选择t恤及其颜色。我希望代码能够在可能的情况下显示每种颜色T恤的背面图像,并且在第二个语句中,能够将其旋转回正面 例如,大致如下: # = colour of tshirt if (n[n.selectedIndex].value == # + "Front.jpg"){ show_image(# + 'Back.jpg','back'); } if (n[n.selectedIndex].value == # + "Back.jpg"){
# = colour of tshirt
if (n[n.selectedIndex].value == # + "Front.jpg"){
show_image(# + 'Back.jpg','back');
}
if (n[n.selectedIndex].value == # + "Back.jpg"){
show_image(# + 'Front.jpg','front');
}
这是可能的,还是我应该为每种颜色(背面和正面)做一个if声明?我相信一定有更好、更紧凑的方法
到目前为止,我得到的是:(只向一个方向旋转)
看看您的示例,我认为您可以从使用
switch
-语句中获益。我在下面附上了一个样本。一个重点要考虑到你的样本是,如果不止一个<代码>如果条件被评估为<代码> true,它们都将被执行。如果决定不使用switch
-语句,则可能需要在函数中使用If/else If/else
-结构
function reverseTee() {
var n = document.getElementById('shirt');
var selected = n[n.selectedIndex].value;
var image;
switch(selected) {
case "redFront.jpg":
show_image("redBack.jpg", "back");
break;
case "redBack.jpg":
show_image("redFront.jpg", "front");
break;
//Add more cases here following the above pattern.
default:
//You don't have to have code here but you can. This will be called if none of the above cases match.
}
}
我认为
for
循环在这里最有意义。创建一个颜色数组,如下所示:
var shirts = ["red","black","white","lemon"];
现在,如果我们看一下if语句,注意到唯一的区别是颜色
function reverseTee() {
var n = document.getElementById('shirt');
var image;
for(var i = 0; i < shirts.length; i++) {
// If Front -> Back
if (n[n.selectedIndex].value == shirts[i] + "Front.jpg")
show_image( shirts[i] + 'Back.jpg','back');
// If Back -> Front
if (n[n.selectedIndex].value == shirts[i] + "Back.jpg")
show_image( shirts[i] + 'Front.jpg','back');
}
}
函数reverseTee(){
var n=document.getElementById('shirt');
var图像;
对于(变量i=0;i<1.length;i++){
//如果前面->后面
if(n[n.selectedIndex].value==shirts[i]+“Front.jpg”)
显示图片(衬衫[i]+'Back.jpg','Back');
//如果后->前
if(n[n.selectedIndex].value==shirts[i]+“Back.jpg”)
show_图像(衬衫[i]+'Front.jpg','back');
}
}
投票否决我的问题的人请留下评论,说明我可以如何改进?这个问题没有任何问题。这是明确的,并显示出努力。
function reverseTee() {
var n = document.getElementById('shirt');
var image;
for(var i = 0; i < shirts.length; i++) {
// If Front -> Back
if (n[n.selectedIndex].value == shirts[i] + "Front.jpg")
show_image( shirts[i] + 'Back.jpg','back');
// If Back -> Front
if (n[n.selectedIndex].value == shirts[i] + "Back.jpg")
show_image( shirts[i] + 'Front.jpg','back');
}
}