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";
});