javascript - 使用 JQuery 从另一个元素的 id 为图像分配属性

标签 javascript jquery html attributes

我有一个列表,列表中的每个项目都包含图像和 map

<ul class="slides">
<li>
  <img src="slide1.jpg" />
  <map id="map-one"></map>
</li>
<li>
  <img src="slide2.jpg" />
  <map id="map-two"></map>
</li>
<li>
  <img src="slide3.jpg" />
  <map id="map-thre"></map>
</li>

要在 img 标签上使用 map ,我应该添加属性 usemap,例如在列表的第一个元素中

<li>
  <img src="slide1.jpg" usemap="#map-one" />
  <map id="map-one"></map>
</li>

为了获取 map 的 id,我使用 JQuery 完成了以下操作

var $mapid;

$('.slides li map').each(function(i, elem) {
  var $this = $(this);
  $mapid = $this.attr('id');
});

使用

console.log($mapid);

结果如下

  • map 一
  • map 二
  • map 三

但现在我不知道如何为每个图像分配 usemap 属性,并且该属性的值是用于坐标的 map 的 id。

像这样

<ul class="slides">
<li>
  <img src="slide1.jpg" usemap="#map-one" />
  <map id="map-one"></map>
</li>
<li>
  <img src="slide2.jpg" usemap="#map-two" />
  <map id="map-two"></map>
</li>
<li>
  <img src="slide3.jpg" usemap="#map-thre" />
  <map id="map-thre"></map>
</li>

最佳答案

您可以使用 .attr() 的 setter 版本,那么您可以返回前缀为 #

的下一个元素(即 map 元素)的 id
$('.slides li img').attr('usemap', function (i, elem) {
    return '#' + $(this).next().attr('id')
});

演示:Fiddle

关于javascript - 使用 JQuery 从另一个元素的 id 为图像分配属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28893950/

相关文章:

jquery - 制作一个依赖于其他 jQuery 扩展的 jQuery 扩展可以吗?

javascript - 当鼠标在不同的 div 上时更改一个 div 的背景图像

html - 将背景颜色应用于整个 html 页面

javascript - EaselJS中获取直线的起点和终点

javascript - webpack dev 中间件,HMR 失败时如何自动重新加载

javascript - 客户端缺少 "Access-Control-Allow-Origin" header 的解决方案

jquery - 在 jQuery 选项卡上保存可折叠状态

javascript - 渲染原始 HTML

javascript - meteor.js 应用程序在本地主机上正常运行,但不在服务器上运行

jquery - 单击时显示隐藏菜单