1

我正在尝试使用 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");
    });
});

任何人都可以看到有什么问题吗?

4

3 回答 3

2

演示

$(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')这就是您分配valuealt属性的方式

$(this).attr('alt',$(this).attr('alt')+" - Copyright (c) John Doe");所以这里的代码currentcurrent+替换" - Copyright (c) John Doe"

代码中的错误

$img没有定义。

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

于 2013-08-14T01:20:04.817 回答
0
$(document).ready(function() {
    $("img").each(function() {
        $(this).attr("alt",function(i,alt){
             return alt + " - Copyright (c) John Doe";
        })
    });
});
于 2013-08-14T01:18:27.910 回答
0

您只会使用append向 HTML 元素添加内容。不是属性。您可以这样做以附加到属性。没有理由each使用这种方法。

$('img').attr('alt', function( idx, originalAlt ){
  return originalAlt + ' - Copyright (c) John Doe'
});
于 2013-08-14T01:19:23.207 回答