Fly higher! Sky is the limit!

webの現場で働く人のブログ

【JavaScript】jQueryのthisを生のJSで表現してみる。

jQueryのthisって便利だよね。

これに対するこれって感じでめっちゃ便利だけど、生のJSで実装する場合、
どうしたらよいんだろうかということで、書いてみた。

知人がつくったALT FRIENDSというページを基に書き換えてみる。

ALT FRIENDSは、画像に対して右クリックを押すとaltが表示されるという、画期的なページです。
これはjQueryで実装されているので生のJSに書き換えてみる。

元ページ

See the Pen ALT FRIENDS by Nasu Alipey (@alipeyoff) on CodePen.

JSの記述

$(document).ready(function() {
  //入力
  var $clickMeElement = $('#haltest img');
   //クリック動作
    $clickMeElement.bind('contextmenu',function() {
    $imgAlt = $(this).attr("alt");
        alert($imgAlt);
    });
});

#haltest img を定義し、バインドさせ該当の画像の上で右クリックをしたら、alt値を取得しアラートを出す。

thisってやっぱり便利ですね。

これを書き換えていきます。

JSの記述

const IMG = document.querySelector("#haltest");
IMG.addEventListener("contextmenu", function(e){
  if(e.target.alt !== undefined){
      alert(e.target.alt);
   }
});

jQueryのthisは、生のJSでは使用できないのでまず、親要素を指定しています。
親要素内で右クリックを押して、もしalt値があれば(=画像)でalt値を取得しアラートを出す。

これで完成!!

書き換えたもの(フォーク)

See the Pen ALT FRIENDS by paradox_tm (@takumaro-web) on CodePen.

これくらいの処理であれば、重いjQueryを読み込むよりもクッソ処理は高速になるかなーと思います。

それでは。