146 votes

Comment obtenir le texte pur sans élément HTML en utilisant JavaScript ?

J'ai le bouton 1 et du texte dans mon code HTML comme suit :

 function get_content(){
   // I don't know how to do in here!!!
}

<input type="button" onclick="get_content()" value="Get Content"/>
<p id='txt'>
<span class="A">I am</span>
<span class="B">working in </span>
<span class="C">ABC company.</span>
</p>

Lorsque l'utilisateur clique sur le bouton, le contenu dans le <p id='txt'> deviendra le résultat attendu suivant :

 <p id='txt'>
// All the HTML element within the <p> will be disappear
I am working in ABC company.
</p>

Quelqu'un peut-il m'aider à écrire la fonction JavaScript?

Merci.

26voto

Sarath Points 3216

Si vous pouvez utiliser jquery alors c'est simple

 $("#txt").text()

11voto

James Points 767

Cette réponse fonctionnera pour obtenir uniquement le texte de n'importe quel élément HTML.

Ce premier paramètre "nœud" est l'élément à partir duquel récupérer le texte. Le deuxième paramètre est facultatif et s'il est vrai, il ajoutera un espace entre le texte dans les éléments si aucun espace n'y existerait autrement.

 function getTextFromNode(node, addSpaces) {
    var i, result, text, child;
    result = '';
    for (i = 0; i < node.childNodes.length; i++) {
        child = node.childNodes[i];
        text = null;
        if (child.nodeType === 1) {
            text = getTextFromNode(child, addSpaces);
        } else if (child.nodeType === 3) {
            text = child.nodeValue;
        }
        if (text) {
            if (addSpaces && /\S$/.test(result) && /^\S/.test(text)) text = ' ' + text;
            result += text;
        }
    }
    return result;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X