可以使IF语句识别div中的图像并使用onclick函数对其进行更改吗?

时间:2019-04-05 00:31:21

标签: javascript image

我有问题,我正在尝试建立一个网站(我的JS技能还不够好),我有一个onclick函数,它将使JS在div(“ gallerym”)中显示图像。

我已经尝试了好几天,以开发新的oncklick函数up() 基本上是一个向上箭头,并使用IF语句应该可以识别“ gallerym”内部的图像,并显示“ gallerym”内部的其他图像。

我最好的办法是创建另一个“画廊”并显示两个图像的代码。

请帮助我找到正确的代码。

非常感谢!

       function up() {
   var gallerym = document.getElementById('gallerym');
   var myImage = gallerym.querySelector('img');
   var imageArray = ['../images/gallery/10cmto100cmm600x600.jpg', 
'../images/gallery/10cmto100cmt600x600.jpg',  

'../ images / gallery / 1mto10mm600x600.jpg','.. / images / gallery / 1mto10mm600x600.jpg']         var currentIndex = imageArray.findIndex(myImage.src)        //将src更改为下一张图片,但首先检查src是否为       最后一项,因此您改为关注第一项        var lastItem = imageArray [imageArray.length-1]        myImage.src = imageArray [currentIndex] == lastItem吗? imageArray [0]:        imageArray [currentIndex + 1]         //不再需要if语句         }

3 个答案:

答案 0 :(得分:0)

我猜该函数是您传递给eventListener的函数。

   function up() {
    var gallerym = document.getElementById('gallerym');
    var myImage = gallerym.querySelector('img');
    var imageArray = ['image1.jpg', 'image2.jpg', 'image3.jpg', 
                       'image4.jpg']
    var currentIndex = imageArray.findIndex(myImage.src)
    // Change the src to the next image, but first checking if the src is the last item, so you resest to first item instead
    var lastItem = imageArray[imageArray.length - 1]
    myImage.src = imageArray[currentIndex] == lastItem ? imageArray[0] : imageArray[currentIndex + 1]
    // No need for the if statement again
  }

答案 1 :(得分:0)

为什么不将最后一个if / else加到第一个if / else上,而只做一个else if语句。

var gallerym = document.getElementById('gallerym');
var myImage = gallerym.querySelector('img');

if (myImage.src == 'image1.jpg') {
    myImage.src = 'image2.jpg'
}else   if (myImage.src == 'image3.jpg') {
    myImage.src = 'image4.jpg'
} else if (myImage.src == 'image3.jpg') {
    myImage.src = 'image3.jpg'
}
 else {
    myImage.src = 'image1.jpg'
}

或Switch语句

switch(myImage.src) {
  case 'image1.jpg':
    myImage.src = 'image2.jpg'
    break;
  case 'image3.jpg':
    myImage.src = 'image4.jpg'
    break;
  default:
    // code block
}

答案 2 :(得分:0)

非常感谢您尝试提供帮助!我能够弄清楚:

这就是我所做的:像护身符一样

function up () {               
 if
(document.getElementById("gallerymain")
.getAttribute('src') 
 == "../images/gallery/image1.jpg") 
   {
    document.getElementById("gallerymain").src = 
 "../images/gallery/image2.jpg"
    }
  else if   
 (document.getElementById("gallerymain")
 .getAttribute('src') 
  == "../images/gallery/image3.jpg") 
    {
    document.getElementById("gallerymain").src = 
 "../images/gallery/image4.jpg"
    }
  }