Javascript 如何使用jQuery更改所有化身图像';Twitter.com上的src属性?

Javascript 如何使用jQuery更改所有化身图像';Twitter.com上的src属性?,javascript,jquery,html,image,Javascript,Jquery,Html,Image,TL;DR:对于Twitter.com上的所有“img.avatar”,我想在src属性中将“_normal.png”替换为“.png”。请参阅下面的代码和错误 上下文:我正在学习JavaScript和jQuery。所以,我喜欢编写小脚本,将事情自动化 问题:所以,我有一台Retina MacBook Pro,twitter.com上的48px头像看起来很可怕(我知道,#firstworldproblem,但请容忍我)。我注意到48px小版本和大版本的URL之间的区别在于前者以“_normal.

TL;DR:对于Twitter.com上的所有“img.avatar”,我想在src属性中将“_normal.png”替换为“.png”。请参阅下面的代码和错误

上下文:我正在学习JavaScript和jQuery。所以,我喜欢编写小脚本,将事情自动化

问题:所以,我有一台Retina MacBook Pro,twitter.com上的48px头像看起来很可怕(我知道,#firstworldproblem,但请容忍我)。我注意到48px小版本和大版本的URL之间的区别在于前者以“_normal.png”结尾,而后者仅以“.png”结尾。例如:

48px thumbnail: 
https://blablabla.com/7f11851408ac5220e361a22f1583e0db_normal.png 

Large version: 
https://blablabla.com/7f11851408ac5220e361a22f1583e0db.png
话虽如此,我想应用我的jQuery知识,系统地删除每个阿凡达图像的src属性末尾的“_normal”,这可以通过“avatar”类识别。重点是什么?这样我就试过了:

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”)
未定义


另外,我对堆栈交换比较陌生,所以如果我违反了任何约定,请提醒我。

存在一些
img
元素,其中没有
src
属性。这就是导致问题的原因。尝试在更改属性之前添加条件,如下所示:

jQuery("img.avatar").each( function(){
    if($(this).attr('src'))
        $(this).attr("src", $(this).attr("src").replace("_normal.png", ".png"))
});

存在一些
img
元素,其中没有
src
属性。这就是导致问题的原因。尝试在更改属性之前添加条件,如下所示:

jQuery("img.avatar").each( function(){
    if($(this).attr('src'))
        $(this).attr("src", $(this).attr("src").replace("_normal.png", ".png"))
});

很可能src属性最初没有设置。您得到的错误是,所选元素的src属性未定义,无法在未定义时调用.replace。你在哪里运行这段代码?我直接从Chrome的Inspect元素工具在控制台中运行它。很可能src属性最初没有设置。您得到的错误是,所选元素的src属性未定义,无法在未定义时调用.replace。你在哪里运行这段代码?我直接从Chrome的Inspect Element工具在控制台中运行它。