javascript - 没有硬编码位置的链接单击图像更改?

标签 javascript image-replacement

我想做的是让访问者通过单击一组缩略图来更改图像。但是,我遇到的问题是我真的想避免将图像位置硬编码到脚本中。我希望脚本具有足够的可移植性,只要使用的 ID 匹配,就可以在任何旧页面和图像集上运行。有没有一种方法可以更改以下内容以用 X 的 src 替换 A、B 或 C 的 src?

JS

function clickSwitch() {
  var element = document.getElementById("bigscreen");
  element.setAttribute("src", "/img/projects/jamison/j2.jpg");
}

HTML

<img class="project-img" src="/img/projects/jamison/j1.jpg" alt="Jamison: View One" id="bigscreen" />

<ul class="project-thumbnails">
<li><a href="#n" onclick="clickSwitch();"><img src="/img/projects/jamison/j1.jpg" alt="Jamison: View One" /></a></li> 
<li><a href="#n" onclick="clickSwitch();"><img src="/img/projects/jamison/j2.jpg" alt="Jamison: View Two" /></a></li>
</ul>

最佳答案

我会将元素加载到一个数组中,在内联 html 之外为每个元素添加一个事件,等等等等......但是你开始吧:

将“this”添加到您的 onclick 事件,该事件将标记传递到 clickSwitch。从那里您可以获得大屏幕所需的内容。

html

<a href="#n" onclick="clickSwitch(this);"><img src="/img/projects/jamison/j1.jpg" alt="Jamison: View One" /></a>

javascript

function clickSwitch(el){
    var src = el.firstChild.getAttribute('src');
    var bigscreen = document.getElementById("bigscreen"); 
    bigscreen.setAttribute("src", src);
}

关于javascript - 没有硬编码位置的链接单击图像更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1522603/

相关文章:

javascript - 禁止点击 anchor 标签下的 img 标签

javascript - Froala React 组件抛出未定义的 "cannot set property ' more_btn'

javascript - 为什么 ng-model 不更新?

html - 所有图像替换技术有什么用?

css - 用图像替换列表项

javascript - Promise.allSettled 不是 Jest 测试中的函数,如何模拟?

javascript - 如何从外部 MeteorListView 文件调用 React-Native 导航器?

node.js - 使用 Node 进行图像处理

python - 如何使用 openCV python 将图像的蒙版部分替换为另一个图像?