以下の内容はhttps://takuya-1st.hatenablog.jp/entry/2024/06/17/000000より取得しました。


js で querySelector では取れない「コメント」ノードをを取得したい

js で querySelector では取れない「コメント」ノードをを取得したい。

スクレイピングしていると、データのIDが属性値になくコメントに入っている事があるので。

コメント・ノードを取得する

function getComments( node ) {
    var comments = [];
    var treeWalker = document.createTreeWalker(
        node,
        NodeFilter.SHOW_COMMENT,
        null,
        false
    );

    var currentNode = treeWalker.nextNode();
    while (currentNode) {
        comments.push(currentNode);
        currentNode = treeWalker.nextNode();
    }

    return comments;
}

ツリーの中をたどって指定したタイプのノードを取得する。今回は、コメントノードを取得する。

動かしてみる。

var e = list[0]
var commentNodes = getComments(e);
console.log(commentNodes);  // コメントノードのリストが表示されます

コメントの中身がほしいときは

コメント要素(ノード)それ自体を取得したい場面より、コメント本文を参照したい場面が多いと思うので。

getComments(e.querySelector('div'))[0].textContent.trim()

参考資料

MDN(https://developer.mozilla.org/en-US/docs/Web/API/Document/createTreeWalker)




以上の内容はhttps://takuya-1st.hatenablog.jp/entry/2024/06/17/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14