JavaScript:显示多种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"){

我正在制作一个简单的网页,允许用户选择t恤及其颜色。我希望代码能够在可能的情况下显示每种颜色T恤的背面图像,并且在第二个语句中,能够将其旋转回正面

例如,大致如下:

# = 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'); 
    }

}