【问题标题】:the 'if...else' is not checking any other conditions, directly skipping to last 'else' statement'if...else' 不检查任何其他条件,直接跳到最后一个 'else' 语句
【发布时间】:2015-02-26 07:16:02
【问题描述】:

i,m 调用 JavaScript 函数来更改图像,方法是使用 if..else 语句更改其来源。但它直接跳到最后一个 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>

我在这里做错了什么?请帮忙。

【问题讨论】:

  • 对于图像,您将其作为绝对路径吗?这不是绝对路径,您提供的是相对路径。在你的条件下,路径将是绝对的。所以它会有所不同。

标签: javascript html function if-statement


【解决方案1】:

尝试使用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";
        }
    }

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

【讨论】:

    【解决方案2】:

    在你的 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的绝对路径中

    【讨论】:

      猜你喜欢
      • 2018-01-11
      • 1970-01-01
      • 2023-02-06
      • 2023-02-06
      • 1970-01-01
      • 2013-07-25
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      相关资源
      最近更新 更多