"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je sélectionner des nœuds de texte dans un élément en utilisant jQuery ou Pure JavaScript?

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

Publié le 2025-03-24
Parcourir:614

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

Sélection des nœuds de texte avec jQuery

Sélection des nœuds de texte descendant d'un élément avec jQuery nécessite un peu de créativité. Bien que jQuery n'offre pas de fonction spécifique pour cette tâche, il est possible de combiner les méthodes contenu () et find () pour atteindre le résultat souhaité.

jQuery Solution

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

getTextNodesIn(el);

Ce code rassemble des nœuds enfants, y compris les nœuds de texte, en utilisant contenu (). Il isole ensuite des éléments descendants et des nœuds de texte à l'aide de find (). Remarque que cette solution nécessite une manipulation spéciale pour les éléments iframe.

pure solution javascript

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  

Cette fonction traverse de façon récursive l'arbre Dom, identifiant les nœuds de texte en fonction de leur type de nœud. Il permet l'inclusion de nœuds d'espace blanc en passant un paramètre.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3