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 :

getElementById et variable en parametre


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 9
    Points
    9
    Par défaut getElementById et variable en parametre
    Bonjour a tous !

    La question a été maintes fois abordée...
    Diverses solutions/problemes sont apparus, vu et revu parmis tant de forums... Et pourtant pas moyen de trouver la solution de mon coté.
    Jusqu'a présent j'avais contourné le probleme, mais c'est pas en contournant H24 que je résoudrais mes lacunes, donc je viens ici afin de parfaire mes compétence et palier a mon inculture

    Voici la bete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function demo(val){
    	alert(val.toString) ; // Retourne 50
    	alert(document.getElementById(val).innerHTML); // retourne une erreur (GEBI(val) is null)
    	alert(document.getElementById("50").innerHTML); // retourne le contenu de la div dont l'id est 50 (le resultat attendu)
    }
    Vous noterez que cette fonction n'est pas celle de base, mais un raccourci afin de nous éviter le superflu...
    J'ai donc une fonction qui recupere une variable "val" qui est en réalité un "string" (ma page Html contient une centaine de div numerotées de 1 a 100 => Un jeu de l'oie grosso modo).
    Le concept est d'afficher la div dans une popup grace a cette fonction demo (mais comme dis juste avant je n'ai aucun probleme avec le popup la n'est pas e probleme je l'ai donc effacé volontairement).

    Le probleme vient donc de cette fameuse variable que je passe en parametre dans mon GetElementById...

    Le ToString() me permet de dire que c'est bien une variable de type String (qui dans l'exemple vaut 50).
    Le deuxieme alert est ce que j'aimerais obtenir mais c'est la ou le bas blesse, je n'y arrive pas.
    Le Troisieme alert quant a lui me confirme que l'id "50" existe bien et qu'y'a pas de soucis a ce niveau.

    En clair, pourquoi mon val ne s'interprete pas comme un String malgré les non-guillemets ? Et comment y remedier ?

    Merci d'avance et bonne journée

  2. #2
    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 634
    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 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    Un id ne doit jamais être exclusivement numérique ni commencer par du numérique .
    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 !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Vous noterez que cette fonction n'est pas celle de base, mais un raccourci afin de nous éviter le superflu...
    C'est une intention louable, mais malheureusement, tu as dû un peu trop "raccourcir" parce qu'en l'état, ton code ne pose aucun problème...

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <!doctype html>
    <html lang="fr">
    <head>
    	<meta charset="utf-8" />
    	<title>getElementById</title>
    	<script type="text/javascript">
                    function demo(val){
                            //alert(val.toString) ; // Retourne 50
                            alert('1 : ' + document.getElementById(val).innerHTML); // retourne une erreur (GEBI(val) is null)
                            alert('2 : ' + document.getElementById("50").innerHTML); // retourne le contenu de la div dont l'id est 50 (le resultat attendu)
                    }
            </script>
    </head>
    <body>
    	<div id="50">Coucou</div>
    	<button onclick="demo(50)">Tester</button>
    </body>
    </html>
    affiche correctement les deux messages.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    En effet...
    Parti de ce constat j'ai refais mon truc, et de fait ca marche.

    Apparemment, soit ce bout de code la qui appelait la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:lancerF();" class="des">Lancer les Des</a>
    qui merdait, soit le fait que j'passais par une deuxieme fonction pour lancer la popup avec un passage de parametre en plus toussa toussa... De toute facon comme d'habitude j'me complique la vie a vouloir trop structurer/chercher les facons les plus funs, et j'en oublie les bases...

    En tout cas merci bien

  5. #5
    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 634
    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 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    Il faut éviter javascript: dans le href ...
    et préférer passer par la onclick du lien en inhibant le href

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclik="lancerF(); return false;" class="des">Lancer les Des</a>
    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 !

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

Discussions similaires

  1. [fonction] concatener la variable en parametre
    Par afrodje dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/10/2007, 16h20
  2. [D7/ReportBuilber] Variable Globale (parametre)
    Par dacid dans le forum Delphi
    Réponses: 2
    Dernier message: 03/04/2007, 13h34
  3. valeur d'un champ text modifié par une variable en parametre
    Par klimero dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 21/04/2006, 11h39
  4. Redirection vers un page avec variable en parametre
    Par gwendy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 19h49
  5. passage d'une variable en parametre
    Par duga dans le forum Langage
    Réponses: 4
    Dernier message: 11/09/2005, 13h19

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