Heim > Web-Frontend > js-Tutorial > Wie kann ich mit jQuery oder einem Nicht-jQuery-Ansatz effizient alle abgeleiteten Textknoten eines Elements abrufen?

Wie kann ich mit jQuery oder einem Nicht-jQuery-Ansatz effizient alle abgeleiteten Textknoten eines Elements abrufen?

Patricia Arquette
Freigeben: 2024-12-17 19:41:11
Original
943 Leute haben es durchsucht

How Can I Efficiently Retrieve All Descendant Text Nodes of an Element Using jQuery or a Non-jQuery Approach?

Textknoten mit jQuery abrufen

Die Aufgabe, alle abgeleiteten Textknoten eines Elements als jQuery-Sammlung abzurufen, kann eine Herausforderung darstellen. Während jQuery für diesen speziellen Zweck keine dedizierte Funktion hat, können wir dieses Ziel erreichen, indem wir die Funktionalitäten von contents() und find() kombinieren.

jQuery-Ansatz:

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

getTextNodesIn(el);
Nach dem Login kopieren

Dieser Ansatz ruft alle untergeordneten Textknoten ab, außer iframes.

Nicht-jQuery-Ansatz:

Für eine effizientere Lösung kann eine rekursive DOM-basierte Funktion verwendet werden:

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);
Nach dem Login kopieren

Diese Funktion kann Nicht-jQuery-Elemente verarbeiten und bietet so eine bessere Kontrolle über die Einbeziehung von Leerzeichen-Textknoten.

Das obige ist der detaillierte Inhalt vonWie kann ich mit jQuery oder einem Nicht-jQuery-Ansatz effizient alle abgeleiteten Textknoten eines Elements abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage