我正在尝试使用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");
});
});
有人能看出什么问题吗?
答案 0 :(得分: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')
这就是您将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'
});