如何使用jQuery选择具有或不具有特定“ alt”属性的图像

时间:2019-02-13 08:25:47

标签: javascript jquery jquery-selectors

我有很多.png图片,想要在提供替代文字的地方获得一个提及的名称,如果alt标签中未提及,则应该显示'png-image'。

下面的代码只是将所有png图像的替代文本“ png-image”放入。

假设我有一个图片的替代文本,即alt="facebook"应该显示alt="facebook"代替alt="png-image"

通过查看源,它显示了alt="facebook"代替alt="png-image"

<script type="text/javascript">
    (function ($) {
        $(document).ready(function() {
            // apply Image alt attribute
            $('img[src$=".png"]').attr('alt', 'png-image');
        });
    }(jQuery));
</script>

3 个答案:

答案 0 :(得分:2)

您可以使用.each方法在.png末尾的src循环遍历所有图像。然后,您可以在每个图像上使用以下命令检查其是否具有alt属性:

if(!$(this).attr('alt'))

如果图像当前没有alt,则此if语句将运行,因此您可以向图像添加自己的alt属性。

请参见下面的工作示例:

$(document).ready(function() {
  $('img[src$=".png"]').each(function() {
    if (!$(this).attr('alt')) // check if current image tag has alt attribute
      $(this).attr('alt', 'png-image'); // if it doesn't add 'png-image' alt attribute
  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<img src="foo.png" /><br />
<img src="bar.png" alt="this is my own alt" /><br />
<img src="foo2.png" alt="this is my own alt2" /><br />
<img src="foo.png" />

这在没有设置alt属性或不设置任何属性(即alt="")的两种情况下都适用。

答案 1 :(得分:0)

您可以在当前选择器中添加[alt=""]选择器

(function($) {
  $(document).ready(function() {
    // apply Image alt attribute
    $('img[src$=".png"][alt=""]').attr('alt', 'png-image');

  });

}(jQuery));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img src='https://images.pexels.com/photos/599708/pexels-photo-599708.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500' alt='image'>
<img src='https://fnetobits.s3.amazonaws.com/galleries/boyerfuneralhome/1819974/1138985594.png' alt=''>

答案 2 :(得分:0)

您可以在JQuery中使用基于属性的选择器来获取所有不具有alt属性的img标签,

$(document).ready(function() {
    $('img[src$=".png"][alt='']').attr('alt','png-image');
})