aのhrefをreplaceするときに出るUncaught TypeError: Cannot read property 'replace' を何とかする

前段

以前の記事なんですが、微妙にconsoleでエラーを吐いてたんですよね。
面倒だったのと動くは動くんでスルーしてたんですが。

なんとかしました。

事象

特に動作に影響はない(たぶん)んですが、コンソールに赤いメッセージが表示されます。

enter image description here

zaif-trade-bot-2.html:35 Uncaught TypeError: Cannot read property ‘replace’

精神衛生的によろしくないですね。

原因

だらだらと持論を展開するタイプの回答が付いてて分かりづらいんですが。

要するに『aタグにhrefがない場合にそのエラーが出てるっぽいのでそこ判定すれば?』ということです。

対策

前回記載した処理のaタグ内にif文を噛ませただけで回避できました。

        $(document).ready(function() {
            $("a").each(function() {
                if ($(this).attr('href') !== undefined) {
                    var replace = null;
                    var replace = $(this).attr('href').replace('元のURL','新しいURL');
                    $(this).attr('href',replace);
                }
            });
        });

こんなに簡単なんだから最初からやっとけって話はありますが。

コメント