' if ... else'没有检查任何其他条件,直接跳到最后的其他条件'声明

时间:2015-02-26 07:16:03

标签: javascript html function if-statement

我调用JavaScript函数来改变图像,使用if..else语句来改变它的来源。但它直接跳到最后的其他声明,所以图像只保持在第一和第二之间交换。最后一张图片

JavaScript函数:

function myfunction2() {
    var image = document.getElementById("image");
    //iterartion 1
    if (image.src == "img1.jpg") {
        image.src = "img2.jpg";
    } else if (image.src == "img2.jpg") {
        image.src = "img3.jpg";
    } else if (image.src == "img3.jpg") {
        image.src = "img4.jpg";
    } else if (image.src == "img4.jpg") {
        image.src = "img5.jpg";
    } else if (image.src == "img5.jpg") {
        image.src = "img1.jpg";
    } else {
        image.src = "img2.jpg";
    }
}

html代码:

<div id="image-slider">
            <img src="img1.jpg" id="image">

            <div id="left-holder">
            <img onclick="myfunction2()" src="arrow-left.png" height="49px" width="49px" class="left"/>
            </div>

            <div id="right-holder">
            <img  onclick="myfunction2()" src="arrow-right.png" height="49px" width="49px" class="right"/>
            </div>
</div>
我在这里做错了什么?请帮助。

2 个答案:

答案 0 :(得分:2)

尝试使用trim()功能

    function myfunction2() {
        var image = document.getElementById("image");
image = image.trim();
        //iterartion 1
        if (image.src == "img1.jpg") {
            image.src = "img2.jpg";
        } else if (image.src == "img2.jpg") {
            image.src = "img3.jpg";
        } else if (image.src == "img3.jpg") {
            image.src = "img4.jpg";
        } else if (image.src == "img4.jpg") {
            image.src = "img5.jpg";
        } else if (image.src == "img5.jpg") {
            image.src = "img1.jpg";
        } else {
            image.src = "img2.jpg";
        }
    }

我怀疑你的文字周围可能有空格

答案 1 :(得分:1)

在你的javascript代码中,image.src提供的内容类似于“file:/// C:/Users/guser/Desktop/img1.jpg” 因此,而不是if(image.src ==“img1.jpg”)使用if(image.src.indexOf(“img1.jpg”)!= -1)

这意味着“img1.jpg”出现在image.src的绝对路径中