querySelectorAllで取得した要素をfilterでフィルタリングしたい

公開日時

puppeteerでhtmlの解析を行う際に、querySelectorAllである要素をすべて取得したあとフィルタリングしたいことがある。

const someClassSelector = document.querySelectorAll('.someClass');
const filteredSomeClassSelector = someClassSelector.filter((s) => {
  return s.textContent === "someText";
});

最初、上記のようなコードを書いていたが[[filter is not a function]]エラーが発生。

Uncaught TypeError: someClassSelector.filter is not a function

Array.fromを使ってNodeListオブジェクトを配列に変換することでfilterを使ったフィルタリングができるようになった。

const someClassSelector = document.querySelectorAll('.someClass');
const filteredSomeClassSelector = Array.from(someClassSelector).filter((s) => {
  return s.textContent === "someText";
});

参考


Related #js

AWS SESの受信メールを暗号化してs3に保存しLambdaで読み込む

jsの場合、複合処理を独自実装する必要がある

Next.jsのPreview Mode時はAnalyticsを無効化する

cookieの__next_preview_dataキーで判定

Next.js 11

手軽にアップグレードできた

VSCode Remoteで新規ファイルを作った際にTypescriptのPathが認識されない問題

「Ctrl + Shift + P」でコマンドパレットを開いて「Reload Window」を実行