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