字符串/图像/ ID比较Javascript

时间:2015-10-28 21:15:45

标签: javascript onclick comparison

我在此代码中的某个地方遇到问题,比较两个图片或他们的ID。我不确定我到底搞砸了哪里,但确实存在语法错误。我已经通过字符串和id比较尝试了很多选项。我不确定我的功能或它的参数是否也是错误的。

<img alt="" src="blah.jpg" style="height: 276px; width: 200px"  id="imgClickAndChange1" onclick="changeImage(this)" />

<img alt="" src="blah.jpg" style="height: 276px; width: 200px"   id="imgClickAndChange2" onclick="changeImage(this)" />


<script language="javascript">

function changeImage(imagePass) {

    var num = Math.floor((Math.random() * 48) + 1);
    var n = num.toString();
    var numImg = n.concat(".jpeg");
    var string = "/Images/folder/";
    var final = string.concat(numImg);
    if(imagePass.src === "blah.jpg") {
        var num2 = Math.floor((Math.random() * 48) + 1);
        var n2 = num2.toString();
        var numImg2 = n2.concat(".jpeg");
        var final2 = string.concat(numImg2);
        if(imagePass.id == "imgClickAndChange1") {
            var image = document.getElementById('imgClickAndChange2');
            image.src = final;
            imagePass.src = final2;
            if(image.src == imagePass.src) {
                while(image.src == imagePass.src) {
                    num = Math.floor((Math.random() * 48) + 1);
                    n = num.toString();
                    numImg = n.concat(".jpeg");
                    final = string.concat(numImg);
                    image.src = final;
                }
            }

        }
    } else if(imagePass.id == "imgClickAndChange1") {
        var image = document.getElementById('imgClickAndChange2');
        image.src = final;
        if(image.src == imagePass.src) {
            while(image.src == imagePass.src) {
                num = Math.floor((Math.random() * 48) + 1);
                n = num.toString();
                numImg = n.concat(".jpeg");
                final = string.concat(numImg):
                image.src = final;
            }

         }
    } else if (imagePass.id == "imgClickAndChange2") {
        var image = document.getElementById('imgClickAndChange1');
        image.src = final;
        if(image.src == imagePass.src) {
            while(image.src == imagePass.src) {
                num = Math.floor((Math.random() * 48) + 1);
                n = num.toString();
                numImg = n.concat(".jpeg");
                final = string.concat(numImg):
                image.src = final;
            }   
        }
    }
}


</script>

它应该做什么:屏幕上有两个图像。单击图像时,另一个图像将更改为文件夹中的随机图像。同时检查图像是否相同。 (一开始,屏幕上有两个相同的图像,当点击其中一个图像时,图像将变为不同的图像。)

---我应该这样做:

var imagePassed = document.getElementById(imagePass); //?

1 个答案:

答案 0 :(得分:0)

你最大的问题是语法错误,使用像jslint这样的工具可以轻松避免(通过在那里粘贴代码,就像我一样,或者使用文本编辑器插件)。在这种情况下,罪魁祸首是一些流氓:向底部。

我在这里有一份代码的工作副本:https://jsfiddle.net/9Lrjr0zq/