TL;DR: Twitter.com のすべての「img.avatar」について、src 属性の「.png」を「_normal.png」に置き換えたいと思います。以下のコードとエラーを参照してください。
コンテキスト: JavaScript と jQuery を学習中です。だから、私は小さなスクリプトを書いて物事を自動化するのが好きです。
問題:私は Retina MacBook Pro を持っていますが、twitter.com の 48 ピクセルのアバターはひどく見えます (#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")
エラーについて私が理解していることから、なぜ未定義なのですか?
PS 私は比較的 Stack Exchange に慣れていないので、規約に違反している場合はお知らせください。