繁体   English   中英

显示带有不同按钮的图片 html css javascript

[英]Display a pictures with a different buttons html css javascript

在我的项目中,我有很多按钮,每个按钮都会触发不同的图片来显示。 在 JS 中使用 IF-ELSE 并且在我的本地 PC 版本中一切正常,但是当将其上传到服务器时,只有第一个按钮起作用,其他按钮显示“加载资源失败:服务器响应状态为 404”。 我的问题是什么其他方法可以代替 IF-ELSE

这是 JS 代码的一部分(仅更改路径名文件夹)

 var btnsImg = document.querySelectorAll(".btn-img") btnsImg.forEach(function(element) { element.addEventListener("click", function() { var val = element.getAttribute("data-value"); if (val == "h1") { document.querySelector(".img-cac").src = "pictures/mainFolder/Folder1/Picture1.JPG"; } else if (val == "h2") { document.querySelector(".img-cac").src = "pictures/mainFolder/Folder1/Picture2.jpg"; } else if (val == "h3") { document.querySelector(".img-cac").src = "pictures/mainFolder/Folder1/Picture3.jpg"; } else if (val == "c1") { document.querySelector(".img-cac").src = "pictures/mainFolder/Folder2/Picture4.jpg"; } else if (val == "c2") { document.querySelector(".img-cac").src = "pictures/mainFolder/Folder2/Picture5.jpg"; } }) })
 <li class="listCAC"> <button onclick="prHtml()"><strong>HTML</strong></button> <ul class="menu-html"> <li class="listCAC"> <button class="btn-img" data-value="h1">Picture1</button> </li> <li class="listCAC"> <button class="btn-img" data-value="h2">Picture2</button> </li> <li class="listCAC"> <button class="btn-img" data-value="h3">Picture3</button>

您可以用switch()语句替换if... else if...链:

const btnsImg = document.querySelectorAll('.btn-img')

btnsImg.forEach(function(element) {
  element.addEventListener('click', function() {
    const basePath = 'pictures/mainFolder/';
    const val = element.getAttribute('data-value');
    let picSrc = '';
    
    switch(val) {
        case 'h1':
        picSrc = 'Folder1/Picture1.JPG';
        break;
      case 'h2':
        picSrc = 'Folder1/Picture2.JPG';
        break;
      case 'h3':
        picSrc = 'Folder1/Picture3.JPG';
        break;
      case 'c1':
        picSrc = 'Folder2/Picture4.JPG';
        break;
      case 'c2':
        picSrc = 'Folder2/Picture5.JPG';
        break;
      default:
        console.log('An error occurred: check the data-value attributes');
    }
    
    document.querySelector('.img-cac').src = basePath + picSrc;
  })
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM