全てのHTMLElementはchildren
プロパティを持っていて、自分の子要素を全て参照できます。
body
からchildrenプロパティの中身を追っていけば全ての要素を追いかけることができます。
例えば、このページの現在のbodyからの子要素を以下のように取得できます。
javascript
1 document.body.children
結果:
HTMLCollection(78) [script#teratail-datalayer-variables, script, noscript, script, header#header.l-header.j-questionDetailMoveToReplySubtract, div#shortNotification.L-shortNotifications, div.row-fluid, div#container.l-container.l-container--qaDetail.clearfix, footer#footer, script, script, script, script, div.C-simpleModalBackground.j-simpleModalWrapper, div#divReport, script, script, script, div.C-simpleModalBackground.j-simpleModalWrapper, script, script, img, script, script, script, div, script, script, iframe, iframe, script, script, script, script, img, iframe, iframe#google_osd_static_frame_9841291665357, script, script, script, iframe, script, img.imPageviewImgBcn, iframe, iframe, div#fb-root.fb_reset, script, noscript, img, img, div, script, script, script, script, iframe, script, script, div, div, script, div, script, div, div, div, script, img, script, script, img, img, img, script, img.imPageviewImgBcnV2, script, div, script, teratail-datalayer-variables: script#teratail-datalayer-variables, header: header#header.l-header.j-questionDetailMoveToReplySubtract, shortNotification: div#shortNotification.L-shortNotifications, container: div#container.l-container.l-container--qaDetail.clearfix, footer: footer#footer, …](長いので省略)
このHTMLCollectionの中身を順番に取得し、さらにchildrenで子要素を探索することで全ての要素そのものが取得可能です。
要素中の何が取得できるかはドキュメントを参照していただければ。
https://developer.mozilla.org/ja/docs/Web/API/Element