【问题标题】:How to get the image alt tag with javascript?如何使用 javascript 获取图像 alt 标签?
【发布时间】:2020-12-19 14:01:05
【问题描述】:

我无法使用 javascript 获取图像 alt 标记。有可能吗?如何实现?

可能类似于:$caption.text(flkty.selectedElement).attr('alt') (最后的 javascript 行)

但我没有让它工作......

谢谢!

var $carousel = $('.carousel').flickity({
  imagesLoaded: true,
  percentPosition: false
});

var $caption = $('.caption');
// Flickity instance
var flkty = $carousel.data('flickity');

$carousel.on( 'select.flickity', function() {
  // set image caption using img's alt
  $caption.text( flkty.selectedElement.alt )
});
.carousel-cell {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.carousel-cell img {
  /* display: block; */
  /* max-height: 100%; */
  max-width: 100%;
}

p {
  text-align: center;
}
<link rel="stylesheet" href="https://unpkg.com/flickity@2/dist/flickity.min.css">

<div class="carousel">
  <div class="carousel-cell">
    <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/orange-tree.jpg"  alt="orange tree" />
  </div>
  <div class="carousel-cell">
    <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/submerged.jpg" alt="submerged" />
   </div>
</div>
<p class="caption">&nbsp;</p>


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://unpkg.com/flickity@2/dist/flickity.pkgd.min.js"></script>

【问题讨论】:

标签: javascript html css alt flickity


【解决方案1】:

使用attr

const img = document.getElementById('image')

const alt = img.getAttribute('alt')

console.log(alt)
&lt;img id="image" src="https://picsum.photos/200/300" alt="this it the alt attribute" /&gt;

使用 jQuery

const alt = jQuery("#image").attr('alt')

console.log(alt)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img id="image" src="https://picsum.photos/200/300" alt="this it the alt attribute" />

您的代码中有一个小错误:

var $carousel = $('.carousel').flickity({
  imagesLoaded: true,
  percentPosition: false
});

var $caption = $('.caption');
// Flickity instance
var flkty = $carousel.data('flickity');

$carousel.on('select.flickity', function() {
  // set image caption using img's alt
  $caption.text($(flkty.selectedElement).find('img').attr('alt'))
});
.carousel-cell {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.carousel-cell img {
  max-width: 100%;
}

p {
  text-align: center;
}
<link rel="stylesheet" href="https://unpkg.com/flickity@2/dist/flickity.min.css">

<div class="carousel">
  <div class="carousel-cell">
    <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/orange-tree.jpg" alt="orange tree" />
  </div>
  <div class="carousel-cell">
    <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/submerged.jpg" alt="submerged" />
  </div>
</div>
<p class="caption">&nbsp;</p>


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://unpkg.com/flickity@2/dist/flickity.pkgd.min.js"></script>

【讨论】:

  • @August 问题是您只能在 jQuery 对象上使用 jQuery 函数。 flkty.selectedElement 不是 jQuery 对象,但 $( flkty.selectedElement ) 是。这是关键和区别。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多