Maison > interface Web > js tutoriel > Comment puis-je sélectionner des nœuds de texte dans un élément à l'aide de jQuery ou de Pure JavaScript ?

Comment puis-je sélectionner des nœuds de texte dans un élément à l'aide de jQuery ou de Pure JavaScript ?

Linda Hamilton
Libérer: 2024-12-28 01:59:09
original
185 Les gens l'ont consulté

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

Sélection de nœuds de texte avec jQuery

Sélectionner des nœuds de texte descendants d'un élément avec jQuery demande un peu de créativité. Bien que jQuery ne propose pas de fonction spécifique pour cette tâche, il est possible de combiner les méthodes contents() et find() pour obtenir le résultat souhaité.

Solution jQuery

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

getTextNodesIn(el);
Copier après la connexion

Ce code rassemble les nœuds enfants, y compris les nœuds de texte, à l'aide de contents(). Il isole ensuite les éléments descendants et les nœuds de texte à l'aide de find(). Notez que cette solution nécessite un traitement particulier pour les éléments iframe.

Solution JavaScript pure

Si vous préférez une approche JavaScript pure, la fonction suivante peut être utilisée :

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);
Copier après la connexion

Cette fonction parcourt récursivement l'arborescence DOM, identifiant les nœuds de texte en fonction de leur type de nœud. Il permet l'inclusion de nœuds d'espacement en passant un paramètre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal