See the Pen 要素がないとエラーになるのを防ぐ(エラーサンプル) by takapen (@takapen) on CodePen.
この状態でコンソールを見ると、下記のようなエラーが出ていることがわかると思います。
jQuery.Deferred exception: Cannot read property 'match' of undefined
TypeError: Cannot read property 'match' of undefined
Uncaught TypeError: Cannot read property 'match' of undefined
matchが関わるところが無かったらエラーになるのですが、pickup内に必ずimgはある想定で、htmlは全部コメントアウトしてpickupは存在しないものとして書いています。
$(function () {
// if($('#pickup').length){
var pickupImg = $('#pickup__img img');
var pickupName = $('#pickup__name');
var src = pickupImg.attr('src').match(/img\/(.+).jpg/);
var srcName = src[1];
pickupName.html(srcName);
// }
});
「要素.length」で要素の有無を判定してます。
その要素があれば、if文の中のjsが実行されるのでエラーにはなりません。
完成
See the Pen 要素がないとエラーになるのを防ぐ(完成) by takapen (@takapen) on CodePen.