是否有可能获得所有HTML内容元素;普通的“;使用javascript从HTML文档中提取文本值

Is there any possibility to get all HTML content elements that contains "plain" text values from HTML document using javascript?

本文关键字:HTML javascript 使用 文档 取文本 提取 有可能 是否 元素      更新时间:2023-09-26

是否有可能使用javascript从HTML文档中获取所有包含"纯"文本值的HTML内容元素?

例如:

<html>
    <body>
        <div>
            Text1
            <p>
                Text2
            </p>
        </div>
    </body>
</html>

我想得到文本1和文本2。

当然,您可以简单地迭代DOM节点:

function getTextNodes(node) {
    var result = [];
    for(var child = node.firstChild; child; child = child.nextSibling) {
        if(child.nodeType === 3) { // text node
            result.push(child);
        }
        else if(child.nodeType === 1) { // element node
            result = result.concat(getTextNodes(child));
        }
    }
    return result;
}
var textNodes = getTextNodes(document.body);

这是一种递归方法,您也可以先选择所有元素节点,然后获取它们的子文本节点。

您可能还想过滤掉只包含空白的文本节点。

DEMO