将文本附加到每个alt标记jquery

时间:2013-08-14 01:16:55

标签: jquery image attributes alt

我正在尝试使用jQuery创建一个函数,该函数将版权消息附加到所有alt标记的末尾。因此<img src="image.jpg" alt="this is alt text">最终会<img src="image.jpg" alt="this is alt text - Copyright (c) John Doe">

这是我创建的功能,但它不起作用:

$(document).ready(function() {
    $("img").each(function() {
        $img.attr("alt").append(" - Copyright (c) John Doe");
    });
});

有人能看出什么问题吗?

3 个答案:

答案 0 :(得分:2)

DEMO

$(document).ready(function() {
    $("img").each(function() {
        $(this).attr('alt',$(this).attr('alt')+" - Copyright (c) John Doe");
    });
});

$(this)指的是每个循环中的当前图像。

$(this).attr('alt')获取当前属性alt

$(this).attr('alt','value')这就是您将value分配给alt属性的方式

$(this).attr('alt',$(this).attr('alt')+" - Copyright (c) John Doe");因此,此处的代码会将current替换为current + " - Copyright (c) John Doe"

代码中的错误

$img未定义。

append处理将html content添加到元素而不是attribute

答案 1 :(得分:0)

$(document).ready(function() {
    $("img").each(function() {
        $(this).attr("alt",function(i,alt){
             return alt + " - Copyright (c) John Doe";
        })
    });
});

答案 2 :(得分:0)

您只能使用append向HTML元素添加内容。不是属性。您可以执行此操作以追加属性。 each使用此方法没有理由。

$('img').attr('alt', function( idx, originalAlt ){
  return originalAlt + ' - Copyright (c) John Doe'
});