首頁 >web前端 >js教程 >如何使用 jQuery 或純 JavaScript 選擇元素內的文字節點?

如何使用 jQuery 或純 JavaScript 選擇元素內的文字節點?

Linda Hamilton
Linda Hamilton原創
2024-12-28 01:59:09190瀏覽

How Can I Select Text Nodes within an Element Using jQuery or Pure JavaScript?

使用 jQuery 選擇文字節點

使用 jQuery 選擇元素的後代文字節點需要一點創造力。雖然 jQuery 沒有為此任務提供特定的函數,但可以結合使用 content() 和 find() 方法來實現所需的結果。

jQuery 解決方案

var getTextNodesIn = function(el) {
    return $(el).find(":not(iframe)").addBack().contents().filter(function() {
        return this.nodeType == 3;
    });
};

getTextNodesIn(el);

此程式碼使用contents()收集子節點,包括文字節點。然後,它使用 find() 隔離後代元素和文字節點。請注意,此解決方案需要對 iframe 元素進行特殊處理。

純JavaScript 解決方案

如果您喜歡純JavaScript 方法,可以使用以下函數:

function getTextNodesIn(node, includeWhitespaceNodes) {
    var textNodes = [], nonWhitespaceMatcher = /\S/;

    function getTextNodes(node) {
        if (node.nodeType == 3) {
            if (includeWhitespaceNodes || nonWhitespaceMatcher.test(node.nodeValue)) {
                textNodes.push(node);
            }
        } else {
            for (var i = 0, len = node.childNodes.length; i < len; ++i) {
                getTextNodes(node.childNodes[i]);
            }
        }
    }

    getTextNodes(node);
    return textNodes;
}

getTextNodesIn(el);

該函數樹歸遍歷DOM 遞歸,根據節點類型識別文字節點。它允許透過傳遞參數來包含空白節點。

以上是如何使用 jQuery 或純 JavaScript 選擇元素內的文字節點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn