簡體   English   中英

是否有可能使用javascript從HTML文檔中獲取包含“純”文本值的所有HTML內容元素?

[英]Is there any possibility to get all HTML content elements that contains “plain” text values from HTML document using javascript?

是否有可能使用javascript從HTML文檔中獲取包含“純”文本值的所有HTML內容元素?

例如:

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

我想獲取Text1和Text2。

當然,您可以簡單地遍歷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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM