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 :

Accéder à la liste des elements avec un ID commencant par x


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut Accéder à la liste des elements avec un ID commencant par x
    Bonjour,

    J'ai l'habitude d'utiliser document.getElementById pour modifier dynamiquement le contenu d'un élement sur mes pages HTML.

    Cependant, je suis confronté à un problème. J'ai besoin d'executer une fonction javascript sur x elements sur ma page HTML. Le problème est que je ne connais pas les id de ces élements.

    Je sais qu'ils commencent par "A_1_" ou "A_2_" par exemple. Comment puis-je acceder à ces élements ? (ex: d'un id complet "A_1_P_345_43")

    Pour information, ce sont des élements contenu dans un div transmis via HttpRequest sur lesquels, je dois executer du code javascript.


    Donc 2 possiblités :

    - Il existe une fonction qui permet d'obtenir un tableaux d'élements dont l'id commence par "A_1_"
    - Je parse le contenu reçu de HttpRequest pour détecter les id et executer la fonction javascript qui prend en entrée l'id de l'élement cible.


    Pouvez vous m'aider ?

    Merci,

  2. #2
    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
    fais-toi un masque de type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var re=/^[a-b]_\d_.+/i;
    trouve-toi ensuite une plage d'éléments pas trop longue, par exemple, tous les éléments contenus dans une zone conteneur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tous=document.getElementById("conteneur").getElementsByTagName("*");
    puis lance la fonction que tu veux uniquement si l'élément à un id correspondant au masque:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(un in tous){
    if(re.test(tous[un].id)){
    fonction()
    }
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    Dans getElementsByTagName("*");

    "*" est considérer comme un joker. Comme % en SQL ?

    Dans ce cas je peux faire :

    document.getElementById("A_1_*");

    ?

    J'ai beau programmer depuis plusieurs années, je n'ai jamais bien compris les masques.

    Autre question : Comment vérifier l'existance d'un id ?


    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Pas vraiment... le * est un joker si utilisé seul ...
    il te faut tester ensuite les id pour ne récupérer que ceux correspondants au regExp ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    ok, merci, je vais essayer ça !


    Dernière petite question : Comment peut on vérifier l'existence d'un id dans le code html ?

    J'ai pensé à un catch sur une erreur lors du getElementById(id) mais il doit surement y avoir un autre moyen moins barbar

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function existe(elt){
    return  (elt)?true:false;}
    }
     
     
    alert(existe(document.getElementById('xxx'))
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    Merci beaucoup !

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

Discussions similaires

  1. Trouver la list des element dans un menu avec webdriver
    Par stpaul04 dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 17/07/2014, 22h19
  2. Réponses: 7
    Dernier message: 01/08/2013, 14h57
  3. Liste des sites avec images libres de droits
    Par SteelBox dans le forum Imagerie
    Réponses: 19
    Dernier message: 06/01/2011, 15h38
  4. Réponses: 1
    Dernier message: 06/05/2006, 11h48
  5. Réponses: 4
    Dernier message: 03/05/2006, 15h30

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