Jquery 试图通过交换机更改img src

Jquery 试图通过交换机更改img src,jquery,image,switch-statement,overlay,src,Jquery,Image,Switch Statement,Overlay,Src,我的页面上有三个图像,如果单击它们,我想在经典覆盖中显示它们。我在覆盖中更改图像源时遇到问题 我首先将图像索引存储在变量中,我试图通过swich来更改源文件,这就是chcecking图像索引 但不知怎么的,它不起作用,我想问你为什么,我做错了什么 谢谢 $("#imageholder img").click(function(){ //checking if was clicked on img from #imageholder var imageId = $("#imageholder im

我的页面上有三个图像,如果单击它们,我想在经典覆盖中显示它们。我在覆盖中更改图像源时遇到问题

我首先将图像索引存储在变量中,我试图通过swich来更改源文件,这就是chcecking图像索引

但不知怎么的,它不起作用,我想问你为什么,我做错了什么

谢谢

$("#imageholder img").click(function(){ //checking if was clicked on img from #imageholder
var imageId = $("#imageholder img").index(this); //store imageID of cliced image into variable
alert(imageId); // alert imageId (debugging)
var overlayImage = $("#overlay-image");
// Adding img elements to overlay div based on imageId
switch (imageId) {
  case "0":
   overlayImage.src='img/1.jpg';
   break;
   case "1":
   overlayImage.src='img/2.jpg';
   break;
   case "2":
   overlayImage.src='img/3.jpg';
   break;
   default:
   alert("No imge was loaded");
}
function on() {
document.getElementById("overlay").style.display = "block";
}

function off() {
document.getElementById("overlay").style.display = "none";
}

on();

});
});

您的开关盒必须具有整数值,因为它们引用的是image和index的索引值是整数类型,所以请更改

switch (imageId) {
  case "0":
   overlayImage.src='img/1.jpg';
   break;
   case "1":
   overlayImage.src='img/2.jpg';
   break;
   case "2":
   overlayImage.src='img/3.jpg';
   break;
   default:
   alert("No imge was loaded");
}


检查我的答案。它应该适合您。但是OP希望从元素数组中获取元素的索引。请先用正确的英语进行注释。你不明白你的意思。
$(“#imageholder img”).indexOf(this)
此语法不正确。您正在将
jquery
对象与
js
switch (imageId) {
  case 0:
   overlayImage.src='img/1.jpg';
   break;
   case 1:
   overlayImage.src='img/2.jpg';
   break;
   case 2:
   overlayImage.src='img/3.jpg';
   break;
   default:
   alert("No imge was loaded");
}