JavaScript のファイル内で、対象のページにDOMが存在するか分からない時に、対象のDOMをquerySelector()した後でif(hoge) で存在チェックをすることがあります。
querySelector() の場合には戻り値がnullなのでこれでいいのですが、querySelectorAll() を使った時にほんの少しハマったので共有しておきます。
Chrome Developer Tool のコンソールで動作を確認してみます。
querySelector() のケース
マッチしないものを指定しているのでnullが返ってきて想定どおりです。
querySelectorAll() のケース
NodeList []が返ってきてます。これだと
if(temp) だとNodeListが空でもtruthyなので存在チェックになっていません。
というわけで存在判定には length を使って以下のように使えばよかったのでした。


