2015-10-28 42 views
0

我在比较两个图像或他们的Id的代码中的某处出现问题。我不确定我究竟在哪里搞砸了,但肯定有语法错误。我已经尝试了很多字符串和id比较的选项。我不确定我的功能或参数是否错误。字符串/图像/ ID比较Javascript

<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); //? 
+0

您可以发布工作小提琴? – xavdid

+1

@ Xavdidtheshadow - 对不起,我没有/使用小提琴手 – LearningProcess

回答

0

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

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

+1

非常感谢你,解决了这个问题。我其实刚刚开始使用JavaScript,所以对任何工具都不太熟悉。我一定会研究它。 – LearningProcess