IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Parcourir les éléments dans un document dans l'ordre du code HTML


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 257
    Points : 79
    Points
    79
    Par défaut Parcourir les éléments dans un document dans l'ordre du code HTML
    Bonjour,
    Disons que le lecteur d'une page HTML sélectionne une zone de texte.
    Je suis capable d'obtenir le HTML de la zone sélectionnée, jusque là ça va.
    Le problème : je dois retrouver une balise de lien qui se trouve plus haut dans le code HTML pour y trouver une information.
    Tout ce que je trouve, ce sont des méthodes qui me permette d'avoir la balise suivante ou précédente au même niveau, le parent ou les enfants dans l'arbre du DOM, c'est pénible à naviguer !
    Ce que je veux c'est trouver le NODE qui se trouve juste avant dans le code HTML, qu'il soit parent, ou voisin, dans l'ordre du texte source, bref sans aucun soucis de l'arborescence.

    Est-ce possible ?

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 356
    Points : 15 702
    Points
    15 702
    Par défaut
    pour cibler un élément en particulier, il vaut mieux le donner un attribut "class" et vous pourrez ensuite le cibler directement.
    est ce que vous utilisez jQuery sur cette page ?

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Bonjour,

    Pour l'instant, c'est difficile de comprendre ce que tu veux (faire).

    Mais rassure-toi: tout est possible

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 257
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par mathieu Voir le message
    pour cibler un élément en particulier, il vaut mieux le donner un attribut "class" et vous pourrez ensuite le cibler directement.
    est ce que vous utilisez jQuery sur cette page ?
    Oui, bien sûr, mais je n'ai pas le contrôle sur la génération du code HTML, tout ce que je peux faire c'est ajouter du Javascript.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 257
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par javatwister Voir le message
    Bonjour,

    Pour l'instant, c'est difficile de comprendre ce que tu veux (faire).

    Mais rassure-toi: tout est possible
    Je veux pouvoir parcourir la liste de tous les objets DOM à partir d'un objet en particulier, et en remontant, mais sans égard à l'arborescence, juste dans l'ordre (donc inverse) des balises dans le code source HTML.
    Mais bon, comme on dit la nuit porte conseil, je crois avoir trouvé un autre moyen de m'en sortir sans avoir à parcourir cette liste.
    Merci.

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    une piste, mais sans savoir encore ce que tu veux coder...

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    const dom=document.body.getElementsByTagName('*');

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 257
    Points : 79
    Points
    79
    Par défaut
    Ben oui, ça je sais bien, mais je dois pouvoir remonter cette liste à partir d'un élément en particulier que je connais, mais je ne sais pas où il va se retrouver dans cette liste, et cet élément est juste une DIV, sans Id ni NAME ni CLASS particulière.

    Mais je suis en train de tester une autre méthode pour régler mon problème, je crois que je vais pouvoir abandonner celle-là. Merci à tous.

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 667
    Points
    44 667
    Par défaut
    Bonjour,
    Je suis capable d'obtenir le HTML de la zone sélectionnée, jusque là ça va.
    si tu as la « zone selectionnée » il existe la propriété Range.commonAncestorContainer qui te permet de récupérer l'élément conteneur et à partir de là tu peux utiliser element.previousElementSibling et remonter ainsi facilement l'arbre DOM.

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 257
    Points : 79
    Points
    79
    Par défaut
    Oui, je sais bien ça, mais c'est « remonter l'arbre » le problème, faut pas juste remonter, mais il faut aussi descendre, remonter, redescendre etc.... C'est vraiment compliqué pour rien. Je me fous de l'arbre, l'élément que je cherche se trouve avant dans le source HTML, ce que je veux c'est la suite des éléments dans leur ordre d’occurrence dans le code source.

  10. #10
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 886
    Points : 3 725
    Points
    3 725
    Par défaut
    Salut,

    Il y a TreeWalker * pour parcourir le DOM facilement et efficacement...


    * https://developer.mozilla.org/fr/doc...API/TreeWalker

    Voir en particulier :

    TreeWalker.previousNode()
    Déplace le Node courant vers le noeud visible précédent dans l'ordre du document et renvoie le noeud trouvé. Il déplace également le noeud courant vers celui-ci. Si aucun noeud n'existe ou s'il est avant le noeud racine défini lors de la construction de l'objet, renvoie null et le noeud courant n'est pas modifié.

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 257
    Points : 79
    Points
    79
    Par défaut
    Ah voilà, merci. Je vais regarder ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Parcourir les fichiers dans l'ordre lexicographique
    Par ctac_ dans le forum Shell et commandes POSIX
    Réponses: 4
    Dernier message: 06/05/2019, 09h10
  2. parcourir les éléments d'une colonne dans un fichier csv
    Par zeinab ali dans le forum Général Python
    Réponses: 9
    Dernier message: 05/12/2016, 22h10
  3. Réponses: 1
    Dernier message: 30/07/2015, 15h18
  4. Parcourir les éléments dans TMainMenu
    Par kwekwe dans le forum Débuter
    Réponses: 6
    Dernier message: 07/08/2014, 09h12
  5. [2.x] parcourir les éléments d'un formulaire dans twig
    Par Sergei75 dans le forum Symfony
    Réponses: 10
    Dernier message: 28/10/2011, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo