javascript - 使用javascript在同一个表格单元格中显示不同的图像

标签 javascript html imagemap

我有一个imageMap(存储在的第一行),我想做的是,取决于哪个区域用户将鼠标悬停在“原始”图像的正下方(即 table 的第二行)显示新图像。

当我设法让第一张新图片 (img1) 出现在“原始图片”的正下方时,但是当我将鼠标悬停在另一个区域时,相关图片 (img2) 出现在 img1 旁边,而我想用 img2 替换 img1。

如何让一张图片只显示?

这是我的代码:

<SCRIPT LANGUAGE="javascript">

function showDetails(id) {
var secondRow = document.getElementById("shopTable").rows[1];
var img = document.createElement("img");

switch(id){
case 1: 
    img.src = "pics/helmet.png";
    secondRow.appendChild(img);
break;
case 2:
    img.src = "pics/wheel.png";
    secondRow.appendChild(img);

    default: break;}
    }

</SCRIPT>

和相关的 HTML

<table id = "shopTable">
<tr>
   <td><map name="samplemap">
      <area href = "#" coords = "7,140,85,180" shape ="rect"  onMouseOver = "showDetails(1)"></area>
      <area href= "#" coords = "100,140,182,180" shape="rect" onMouseOver="showDetails(2)"></area>
    </map></td>
    <img name = "topHalf" usemap = "#samplemap" src="pics/top_half.png"></img>
    </tr>
    <tr>
        <td></td>
            </tr>
 </table>

最佳答案

您每次都在附加一个新元素。您必须删除现有图像。

您可以为此使用属性 innerHTML

secondRow.innerHTML = img;

关于javascript - 使用javascript在同一个表格单元格中显示不同的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22497086/

相关文章:

css - 如何让 div 占据整个屏幕宽度?

jquery - 为什么 .hover() 不适用于映射图像,但 .mouseover() 可以?

r - 在 Shiny 应用程序中处理图像映射点击

javascript - 如何将传单中的标记位置保存到本地存储?

指向本地网络共享的 HTML 链接

html - 如何设置html“选择”元素的选项的样式?

html - 图像 map 上的权威是什么?

javascript - 这里映射 SSL 失败

javascript - 从 Cesium Display 加载和卸载 GeoJSON

javascript - 遍历对象哈希表