Supprimer le texte après l’élément

J’essaie de supprimer le texte après l’icône.

xFrance $('.flagstrap-icon').next().remove(); 

Le problème est que next () ne fonctionnera pas sans élément.

Exemple France

Démo

Une idée pour supprimer le texte après l’icône?

jQuery ne peut pas vraiment cibler des nœuds qui ne sont pas des éléments, mais JS simple peut

 $('.flagstrap-icon').get(0).nextSibling.remove() 

VIOLON

Notez que cela utilise la méthode native remove() , qui n’est pas prise en charge par les anciens navigateurs. Si vous devez les prendre en charge, vous le feriez.

 var node = $('.flagstrap-icon').get(0).nextSibling; node.parentNode.removeChild(node); 

la méthode jQuery .next () sélectionne l’ élément suivant et son contenu et ne sélectionne pas le texte qui ne se trouve pas à l’intérieur d’un élément. La raison pour laquelle cela fonctionne est que jquery examine l’ arborescence DOM et non le texte en clair.

sur la façon de sélectionner du texte en clair sans balise, je ne pense pas que ce soit possible / je ne sais pas

J’espère que ça a aidé mukund2003

Si l’élément est dans un conteneur parent et qu’il n’y a aucun élément supplémentaire dans ce conteneur, vous pouvez faire quelque chose comme:

 $('.flagstrap-icon').parent().html($('
').append($('.flagstrap-icon').clone()).html());

Cependant, cela ne fonctionnera pas correctement si le parent contient d’autres éléments.

DEMO