Heim >Web-Frontend >js-Tutorial >Wie kann ich mit jQuery effizient alle Textknoten innerhalb eines Elements auswählen?
Auswählen von Textknoten mit jQuery
Das Abrufen aller untergeordneten Textknoten eines Elements als jQuery-Sammlung kann eine komplexe Aufgabe sein. Da jQuery hierfür keine dedizierte Funktion hat, ist eine Kombination von Methoden erforderlich.
Die Lösung besteht darin, die Funktion content() zu verwenden, die untergeordnete Knoten (einschließlich Textknoten) abruft, und die Funktion find(), die Wählt alle untergeordneten Elemente aus (außer Textknoten). Durch Zusammenführen dieser Ergebnisse können alle Textknoten innerhalb des angegebenen Elements erhalten werden.
var getTextNodesIn = function(el) { return $(el).find(":not(iframe)").addBack().contents().filter(function() { return this.nodeType == 3; }); }; getTextNodesIn(el);
Überlegungen:
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);
Das obige ist der detaillierte Inhalt vonWie kann ich mit jQuery effizient alle Textknoten innerhalb eines Elements auswählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!