Bonjour
Je cherche à trier les éléments <li> d'une liste sur la valeur du texte contenu dans ces balises.
Jusqu'à présente, je faisais un tri sur la valeur de la propriété innerHTML, mais s'il y a des "enfants", par exemple des images dans la balise, les balises des enfants viennent perturber le tri.
J'ai essayé d'utiliser la propriété nodeValue, mais je ne comprends pas très bien comment elle fonctionne en Javascript.
La plupart des "nodes" du DOM étant des "element nodes", à l'exception semble-t-il des #text nodes, je n'ai pas vu d'autre façon de récupérer le contenu textuel d'un élément que d'écrire une fonction qui parcourt les enfants de l'élément de façon récursive pour trouver les #text et prendre la valeur de nodeValue. C'est ce que j'ai fait et cela semble donner satisfaction.
Cela me semble bien compliqué pour une fonction aussi utile, en PHP, nodeValue fonctionne sur tous les nœuds.
Connaissez-vous une façon plus simple d'obtenir ce résultat?
Je cherche à trier les éléments <li> d'une liste sur la valeur du texte contenu dans ces balises.
Jusqu'à présente, je faisais un tri sur la valeur de la propriété innerHTML, mais s'il y a des "enfants", par exemple des images dans la balise, les balises des enfants viennent perturber le tri.
J'ai essayé d'utiliser la propriété nodeValue, mais je ne comprends pas très bien comment elle fonctionne en Javascript.
a écrit :
The nodeValue property sets or returns the node value of the specified node.
If the node is an element node, the nodeValue property will return null.
La plupart des "nodes" du DOM étant des "element nodes", à l'exception semble-t-il des #text nodes, je n'ai pas vu d'autre façon de récupérer le contenu textuel d'un élément que d'écrire une fonction qui parcourt les enfants de l'élément de façon récursive pour trouver les #text et prendre la valeur de nodeValue. C'est ce que j'ai fait et cela semble donner satisfaction.
Cela me semble bien compliqué pour une fonction aussi utile, en PHP, nodeValue fonctionne sur tous les nœuds.
Connaissez-vous une façon plus simple d'obtenir ce résultat?