Si j'ai un html comme ça :
<li id="listItem">
This is some text
<span id="firstSpan">First span text</span>
<span id="secondSpan">Second span text</span>
</li>
J'essaie d'utiliser .text()
pour récupérer juste la chaîne "Ceci est du texte", mais si je disais $('#list-item').text()
j'obtiens "This is some textFirst span textSecond span text".
Existe-t-il un moyen d'obtenir (et éventuellement de supprimer, via quelque chose du genre .text("")
) seulement le texte libre à l'intérieur d'une balise, et non le texte à l'intérieur de ses balises enfants ?
Le HTML n'a pas été écrit par moi, c'est donc avec cela que je dois travailler. Je sais qu'il serait simple d'envelopper le texte dans des balises lors de l'écriture du code HTML, mais là encore, le code HTML est pré-écrit.
0 votes
Parce que je n'ai pas encore assez de réputation pour commenter et que je ne souhaite pas que les connaissances soient perdues (en espérant qu'elles aident quelqu'un d'autre), une combinaison de Réponse de macio.Jun un RegExp, et Réponse de "iStranger à Remplacer un textNode par du HTML en Javascript ? m'a permis de rechercher une chaîne dans les nœuds de texte et de remplacer toutes les occurrences par des liens.