J'ai le bouton 1 et du texte dans mon 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 de la <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?
Je vous remercie.
javascript
html
John
la source
la source
Réponses:
[2017-07-25] puisque cela continue d'être la réponse acceptée, bien que ce soit une solution très piratée, j'y incorpore le code de Gabi , laissant le mien pour servir de mauvais exemple.
la source
Vous pouvez utiliser ceci:
En fonction de vos besoins, vous pouvez utiliser soit
element.innerText
ouelement.textContent
. Ils diffèrent à bien des égards.innerText
essaie de se rapprocher de ce qui se passerait si vous sélectionniez ce que vous voyez (rendu html) et le copiez dans le presse-papiers, tandis qu'entextContent
quelque sorte , supprime simplement les balises html et vous donne ce qui reste.innerText
a également une compatibilité avec les anciens navigateurs IE (venus de là).la source
text
méthode de haute performance car elle se fait beaucoup en boucle. jQuery n'était pas assez performant, mais c'était très rapide. A travaillé dans IE8 +, chrome, ff. Parfait.el.textContent
seraundefined
etel.innerText
pourrait être""
. Mais"" || undefined
estundefined
. En utilisantel.innerText || el.textContent || ''
peut être meilleure.el.textContent || el.innerText || ""
.var text = element.textContent;
; sauf pour une raison impie, vous devez toujours prendre en charge IE8 ou inférieur .el.innerText
est à peu près le même queel.textContent.replace(/\W+/g, ' ')
. Ils ne sont pas les mêmes.Si vous pouvez utiliser jquery, c'est simple
la source
filter
propriété. Je sais que le JS pur est techniquement plus efficace endocument.querySelector("#txt").innerText;
gens incluent bien trop souvent la bibliothèque jQuery entière quand leur seul besoin est de quelques lignes de code. C'est une mauvaise pratique.Cette réponse fonctionnera pour obtenir uniquement le texte de tout élément HTML.
Ce premier paramètre "node" est l'élément à partir duquel obtenir 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'existerait autrement.
la source
En fonction de vos besoins, vous pouvez utiliser soit
element.innerText
ouelement.textContent
. Ils diffèrent à bien des égards.innerText
essaie de se rapprocher de ce qui se passerait si vous sélectionniez ce que vous voyez (rendu html) et le copiez dans le presse-papiers, tandis qu'entextContent
quelque sorte , supprime simplement les balises html et vous donne ce qui reste.innerText
n'est plus seulement utilisé pour IE , et il est pris en charge dans tous les principaux navigateurs . Bien sûr, contrairement àtextContent
, il est compatible avec les anciens navigateurs IE (depuis qu'ils l'ont inventé).Exemple complet (de la réponse de Gabi ):
la source
Cela fonctionne pour moi compilé sur la base de ce qui a été dit ici avec une norme plus moderne. Cela fonctionne mieux pour plusieurs recherches.
la source
Cela devrait fonctionner:
Essayez ce violon: http://jsfiddle.net/7gnyc/2/
la source
Ça devrait le faire.
la source
Essayez (version courte de l' idée de réponse de Gabi )
Afficher l'extrait de code
la source