如何单击图像网格中的项目和 return 不同容器中的所选图像 - Javascript

How to click an item in a grid of images and return the selected image in a different container - Javascript

large_image 应显示为用户单击的任何 grid_images。 我搜索了 S.O.F。和 google,但尚未找到解决此问题的方法。

<div id="large_image" class="container">
    <img src="">
</div>
<div id="grid_images" class="container">
    <img src="assets/images/rock.png">
    <img src="assets/images/paper.png">
    <img src="assets/images/scissors.png">
</div>

Javascript:

function change_image {
    document.getElementById("large_image").img = 
    // How do I select the image that is clicked?
}

如果使用jQuery,请将以下代码放在$(document).ready(function(){ ... }) 内,否则将其添加到页面底部。

  var largeImage = document.getElementById("large_image");
  var gridImage = document.getElementById("grid_images");

  gridImage.addEventListener('click', function(event) { 
      largeImage.removeChild(largeImage.firstChild);
      largeImage.appendChild(event.target.cloneNode());
  });

好的,有几件事。首先,为了更新 large_imageimgsrc,您需要一种引用该 img 元素的方法。最简单的方法是给 img 元素一个 ID。由于您没有在其父级 div 上使用 ID,我将把它移至 img。如果您确实需要 div 上的 ID,则只需确保 img 上的 ID 是唯一的。

现在,当您调用 change_image 时,您需要传入被点击的 img 的来源,因此您可以将其设置为 large_image 的来源。您的 JavaScript 函数应该如下所示:

function change_image(imgSrc) {
    document.getElementById("large_image").src = imgSrc;
}

HTML 应该是这样的:

<div class="container">
    <img id="large_image" src="">
</div>
<div id="grid_images" class="container">
    <img src="assets/images/rock.png" onclick="change_image(this.src);">
    <img src="assets/images/paper.png" onclick="change_image(this.src);">
    <img src="assets/images/scissors.png" onclick="change_image(this.src);">
</div>

下面的代码片段展示了它的实际效果,当然,图像使用了不同的来源。

    function change_image(imgSrc) {
      document.getElementById("large_image").src = imgSrc;
    }
<div class="container">
  <img id="large_image" src="">
</div>
<div id="grid_images" class="container">
  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Aerial_Crater_Lake.jpg/320px-Aerial_Crater_Lake.jpg" onclick="change_image(this.src);">
  <img src="https://upload.wikimedia.org/wikipedia/commons/6/6f/Boating_in_Spirit_Lake-pre_1980.jpg" onclick="change_image(this.src);">
  <img src="https://upload.wikimedia.org/wikipedia/en/thumb/1/1e/Okanagan_Lake.jpg/320px-Okanagan_Lake.jpg" onclick="change_image(this.src);">
</div>