字符串/图像/ID 比较 Javascript

String / Image / ID Comparison Javascript

我在这段代码中比较两张图片或它们的 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); //?

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

我在此处获得了您的代码的工作副本:https://jsfiddle.net/9Lrjr0zq/