Problème avec l'execution d'une fonction personnalisée
Fermé
theclemmm
Messages postés
71
Date d'inscription
mardi 16 octobre 2012
Statut
Membre
Dernière intervention
29 septembre 2016
-
24 nov. 2014 à 23:57
theclemmm Messages postés 71 Date d'inscription mardi 16 octobre 2012 Statut Membre Dernière intervention 29 septembre 2016 - 26 nov. 2014 à 01:19
theclemmm Messages postés 71 Date d'inscription mardi 16 octobre 2012 Statut Membre Dernière intervention 29 septembre 2016 - 26 nov. 2014 à 01:19
A voir également:
- Problème avec l'execution d'une fonction personnalisée
- Sonnerie personnalisée android - Guide
- Fonction si et - Guide
- Comment mettre une alarme personnalisée sur iphone - Guide
- Carte personnalisée google maps - Guide
- Fonction moyenne excel - Guide
1 réponse
Utilisateur anonyme
25 nov. 2014 à 00:29
25 nov. 2014 à 00:29
Bonjour
Tu accèdes à certains de tes éléments grâce à leur id (getElementById) et à d'autres par le nom du tag (getElementsByTagName). Tu as le droit, mais...
Ça ne t'a pas frappé que dans la première fonction, il n'y a pas de 's' au mot Element, alors qu'il y en a un dans la deuxième fonction ?
C'est que l'id d'un élément est unique : il y a donc obligatoirement un seul élément qui a un id donné. La fonction getElementById te rend cet élément, celui qui a cet id (ou le premier si tu as eu la mauvaise idée d'utiliser plusieurs fois le même id)
Par contre, tu peux très bien plusieurs éléments qui ont le même tag, c'est même le cas le plus souvent. La fonction getElementsByTagName ne rend donc pas un élément, mais un tableau (Array) d'éléments. Même si parfois ce tableau peut contenir un seul, voire aucun élément.
Dans ton cas, la variable "formulaire" contient donc un tableau, et non pas un élément. Et un Array javascript n'a pas de style, donc formulaire.style n'est pas défini.
Par contre, formulaire[0], formulaire[1]... sont des éléments (si tu as plusieurs formulaires) et formulaire[0].style serait correct.
Mais le plus simple est de définir un id pour ton formulaire aussi, et d'utiliser getElementById, ce qui élimine toute ambiguïté.
Tu accèdes à certains de tes éléments grâce à leur id (getElementById) et à d'autres par le nom du tag (getElementsByTagName). Tu as le droit, mais...
Ça ne t'a pas frappé que dans la première fonction, il n'y a pas de 's' au mot Element, alors qu'il y en a un dans la deuxième fonction ?
C'est que l'id d'un élément est unique : il y a donc obligatoirement un seul élément qui a un id donné. La fonction getElementById te rend cet élément, celui qui a cet id (ou le premier si tu as eu la mauvaise idée d'utiliser plusieurs fois le même id)
Par contre, tu peux très bien plusieurs éléments qui ont le même tag, c'est même le cas le plus souvent. La fonction getElementsByTagName ne rend donc pas un élément, mais un tableau (Array) d'éléments. Même si parfois ce tableau peut contenir un seul, voire aucun élément.
Dans ton cas, la variable "formulaire" contient donc un tableau, et non pas un élément. Et un Array javascript n'a pas de style, donc formulaire.style n'est pas défini.
Par contre, formulaire[0], formulaire[1]... sont des éléments (si tu as plusieurs formulaires) et formulaire[0].style serait correct.
Mais le plus simple est de définir un id pour ton formulaire aussi, et d'utiliser getElementById, ce qui élimine toute ambiguïté.
26 nov. 2014 à 01:19