更改图像基于下拉菜单和图像链接
Change Image based on dropdown and image link
扩展这里的问题:如何使用javascript来交换图像与选项更改?
根据问题中基于选择选项更改图像的方法,我如何更改图像周围的<a></a>
链接以镜像显示图像?
<script>
var colorUrlMap = {
"Black/White" : "images/taylormade_purelite_standbag_bk.jpg",
//Add more here
"White/Red/Black" : "images/taylormade_purelite_standbag_wrb.jpg"
};
</script>
<select name="Color:"onchange="document.getElementById('myimage').src = colorUrlMap[this.value];">
<option value="Black/White">Black/White</option>
<!-- Add more here -->
<option value="White/Red/Black">White/Red/Black</option>
</select>
<img src="images/taylormade_purelite_standbag_bk.jpg" id="myimage">
的例子:
<a href="WHATEVER IS CHOOSEN BASED ON THE urlMAP"><img src="images/taylormade_purelite_standbag_bk.jpg" id="myimage">
</a>
既然您现在正在做多个事情,那么最好将更改代码分解为自己的函数。但是基本上,您需要访问a
标签的href
属性,就像您访问img
标签上的src
一样。
<script>
var colorUrlMap = {
"Black/White" : "images/taylormade_purelite_standbag_bk.jpg",
//Add more here
"White/Red/Black" : "images/taylormade_purelite_standbag_wrb.jpg"
};
function changeSelect(el) {
document.getElementById('myimage').src = colorUrlMap[el.value];
document.getElementById('link_id').href = colorUrlMap[el.value];
}
</script>
<select name="Color:" onchange="changeSelect(this)">
<option value="Black/White">Black/White</option>
<!-- Add more here -->
<option value="White/Red/Black">White/Red/Black</option>
</select>
<img src="images/taylormade_purelite_standbag_bk.jpg" id="myimage">
example:
<a id="link_id" href="WHATEVER IS CHOOSEN BASED ON THE urlMAP"><img src="images/taylormade_purelite_standbag_bk.jpg" id="myimage">
</a>
你可能注意到我也给了a
一个id
的值。
如果你需要从其他地方获得链接,这里有一个可能的替代方法来编写你的脚本。我为每个颜色项目添加了另一个级别的属性:src
和href
,以匹配您在a
和img
标签上更新的属性名称。
<script>
var colorUrlMap = {
"Black/White" : {
"src" : "images/taylormade_purelite_standbag_bk.jpg",
"href" : "your link here"
},
//Add more here
"White/Red/Black" : {
"src" : "images/taylormade_purelite_standbag_wrb.jpg",
"href" : "your other link here"
}
};
function changeSelect(el) {
document.getElementById('myimage').src = colorUrlMap[el.value].src;
document.getElementById('link_id').href = colorUrlMap[el.value].href;
}
</script>
更新2
回答评论中关于单选按钮的问题,是的。从您的代码示例中,目前您有一个关于无线电的onclick
事件的表单提交。你需要改变这一点。然而,radio
按钮的技巧是,您只想使用所选单选的值。如果您在无线电上使用onchange
事件,它将在选择和取消选择时触发。
因此,如果您希望对无线电和选择使用相同的函数,可以将setter行包装在if语句中:
function changeColor(el) {
if (el.nodeName != "INPUT" || el.checked) {
document.getElementById('myimage').src = colorUrlMap[el.value].src;
document.getElementById('link_id').href = colorUrlMap[el.value].href;
}
}
这应该适用于select
, input[type=radio]
和input[type=checkbox]
。您可以将其放在onclick
、onchange
或onkeyup
处理程序中。(当使用键盘更改值时,onkeyup
是好的)
相关文章:
- Javascript图像链接
- 更改标记.js图像/链接表达式
- 如何获取显示在谷歌搜索右侧的图像链接
- 来自流星模板的 HTML 图像链接未由浏览器呈现
- 警报后转到 iframe 中的图像链接
- JavaScript渐变幻灯片-图像链接
- 使用JavaScript从网页复制HTML代码或图像链接
- 响应图像tinymce图像链接
- 谷歌图书预览没有在安全的https上显示图书图像链接,但在http上工作.在Google Chrome和Touch浏览器
- 如何在这个javascript中添加图像链接
- 悬停图像链接,更改文本css
- 如何告诉 iframe 将图像链接调整为给定的宽度和高度
- jQuery - 在其下方显示每个图像链接
- 如何将图像链接与 HTML 和 CSS 一起使用时,悬停时在其他位置显示图像
- 如何在鼠标悬停在另一个图像/链接上时显示新图像/窗口
- 如何在数据库值达到一定数量后禁用图像链接
- 当我们单击多个图像链接时,将在同一页面上显示多个工具提示
- 用于在网页上填充图像链接的 JavaScript 代码
- 在.js文件中写入图像链接 - Symfony2
- 如何加载带有图像链接的 XML 文件,以便在 2D JavaScript 数组中使用