Parametre de getElementById

Résolu
lucky82 Messages postés 89 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 16 juin 2008 - 18 avril 2007 à 14:22
lucky82 Messages postés 89 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 16 juin 2008 - 18 avril 2007 à 16:38
Bonjour,
Je voudrais savoir si la fonction getElementById peut prendre un tableau comme parametre.(avec exemple si c'est possible).
Merci

12 réponses

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 avril 2007 à 15:00
un ID doit être unique dans une page...
par contre rien n'empêche de "boucler"
ch'tit exemple :

   
   
   
    <script type= "text/javascript">
        var n=1;
        while ( document.getElementById("chp"+n) )
        {
            alert(document.getElementById("chp"+n).value);
            n++;
        }
    </script>

    ou utiliser document. name du formulaire .chp1[n]

<hr />


Cordialement    Bul     [mon Site]     [=Bul M'écrire]



<hr />
3
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 avril 2007 à 15:43
<script type="text/javascript">
        n=1;
        while ( document.getElementById("chp["+n+"]") )
        {
         alert(document.getElementById("chp["+n+"]").value);
            n++;
      }

</script>

mais pourquoi donc un ID de ce style ?

ou

<form name="frm">
   
   
   
</form>
<script type="text/javascript">
        for ( var n=0;n<frm.chp1.length;n++ )
        {
             alert(document.frm.chp1[n].value);
         }      
</script>

OU.....

<hr />


Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
3
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 avril 2007 à 14:35
Bonjour,

    getElementById :     Accède, conformément à la variante HTML du modèle DOM,
                                       à un élément HTML qui
possède un attribut
id
.

    alors si la question c'est accéder à un tableau : oui, il suffit que ce tableau possède un id
    si c'est utiliser getElementById(["id1","id2"...] ) ben, non,
                                la question : quel serait le but ?




<hr />



Cordialement        Bul     [mon Site]     [M'écrire]



<hr />
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
18 avril 2007 à 14:47
Bonjour




Question : par tableau, tu entends un élément HTML "table" défini par <table> ou un tableau javascript défini par Array() ?

Cordialement
Roro06
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lucky82 Messages postés 89 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 16 juin 2008
18 avril 2007 à 14:53
En fait, ma quetion est:
puisque getElementById  accede à un élément HTML qui possède un attribut
id, est ce que cet attribut(id) peut etre un array (et non pas <table>);
par exemple :

et du coup, si on appelle la fonction getElementById   on met un array (chp[]) comme parametre...
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
18 avril 2007 à 14:58
Bonjour




non.
getElementById est une méthode de l'objet document. Par conséquent, il permet d'accéder, comme son non l'indique, aux éléments HTML contenu dans document (le body de la page HTML), mais pas à un objet javascript. Encore faut-il que l'élément en question possède un id.

Cordialement
Roro06
0
lucky82 Messages postés 89 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 16 juin 2008
18 avril 2007 à 15:04
E_________xact, c'est ce que je cherche " bultez"  Merciiiii.
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
18 avril 2007 à 15:04
Bonjour




par contre, présenté comme ça, tu accéderas à ton input par document.getElementById("chp[]")

Il est par contre possible d'accéder à un tableau d'éléments par document.getElementsByName().

En toute rigueur, au sein d'une page HTML, tu peux avoir plusieurs éléments portant le même name, mais un id devrait être unique.

exemple :

tu peux accéder au deuxième input soit par document.getElementById("inp2"), soit par document.getElementsByName("inp")[1]

remarques :
1/ ça s'écrit getElementsByName : le s indique bien une collection.
2/ la notation
document.getElementsByName("inp")[1] se rapproche de la définition d'un tableau javascript





Cordialement
Roro06
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
18 avril 2007 à 15:05
Bonjour




oops on s'est croisé

Cordialement
Roro06
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 avril 2007 à 15:07
    ou alors... c'est peut-être le but ?
    mettre les ID dans un array. et boucler sur cet array ?

   
  
   
    <script type="text/javascript">
        var nom=["un","deux","trois"];
        for ( var n=0;n<nom.length;n++ )
        {
            alert(document.getElementById(nom[n]).value);
        }
    </script>

<hr />


Cordialement        Bul     [mon Site]     [M'écrire]



<hr />
0
lucky82 Messages postés 89 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 16 juin 2008
18 avril 2007 à 15:19
Si, en fait, j'aimerai mettre l'id comme étant un array et ainsi pouvoir le récupérer dans le scriptjava, je dois faire donc comme ça:

<script type="text/javascript">

        for ( var n=0;n<document.getElementById(nom).length;n++ ){
            alert(document.getElementById(nom[n]).value);
        }

    </script>

??
0
lucky82 Messages postés 89 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 16 juin 2008
18 avril 2007 à 16:38
Impeccable!

Oui, en fait j'ai besoin de faire une fonction en javascript qui fait tous les tests possibles sur n'importe quel formulaire désigné en paramètres (avec des IF (champsX) FAIRE .....).
Donc puisque j'ai beaucoups de formulaires dont les noms ont été utilisé pour d'autres besoins et puisqu'il y a des textfield qui doivent être numériques mais qui changent de nom selon la page, j'ai pensé à utiliser l'attribut id en lui attribuant nom de tableau fixe dans toutes les pages (sur lequel je ferai le test d'existence dans le sciprt java), ainsi je me souci pas de savoir combien existe-t-il de textfield numériques dans un formulaire donné...

Mile merci à tous. 
0