TL;DR:对于 Twitter.com 上的所有“img.avatar”,我想在 src 属性中将“_normal.png”替换为“.png”。请参阅下面的代码和错误。
背景:我正在学习 JavaScript 和 jQuery。所以,我喜欢编写小脚本来将事情自动化作为练习。
问题:所以,我有一台 Retina MacBook Pro,而 twitter.com 上的 48px 头像看起来很糟糕(我知道,#firstworldproblem,但请耐心等待)。我注意到小48px头像和大头像的区别在于前者以“_normal.png”结尾,而后者只是以“.png”结尾。例子:
48px thumbnail:
https://blablabla.com/7f11851408ac5220e361a22f1583e0db_normal.png
Large version:
https://blablabla.com/7f11851408ac5220e361a22f1583e0db.png
话虽如此,我想应用我的jQuery知识,系统地删除每个头像图像的src属性末尾的“_normal”,可以用“头像”类来识别。重点是什么?只是这样它就可以了这是我尝试过的:
jQuery("img.avatar").each( function(){
$(this).attr("src", $(this).attr("src").replace("_normal.png", ".png"))
});
这是我在控制台中遇到的错误:
TypeError: Cannot call method 'replace' of undefined
我究竟做错了什么?$(this).attr("src")
根据我对错误的理解,为什么未定义?
PS 我对 Stack Exchange 比较陌生,所以如果我违反任何约定,请提醒我。