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 : Demande explication :D


Sujet :

JavaScript

  1. #1
    Membre actif
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Points : 282
    Points
    282
    Par défaut Getelementbyid : Demande explication :D
    Bonjour

    voila, j'ai un petit problème que je comprends pas vraiment... Je pars de ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <input type="text" id="champ_input"><br>
    <input type="button" onclick="f()" value="modifier le champ">
    <script>
    function f()
    {
       var obj = document.getElementById("champ_input")
       alert('le champ a pour valeur : "'+obj.value+"'")
       obj.value="autre valeur"
       alert('maintenant il contient : "'+obj.value+'"')
    }
    </script>
    Ca fonctionne bien il me récupère la valeur onclick et la change.
    Maintenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div id = "champ_input">ok ok</div>
    <script>
     
     
       var obj = document.getElementById("champ_input")
       alert('le champ a pour valeur : "'+obj.value+"'")
       obj.value="autre valeur"
       alert('maintenant il contient : "'+obj.value+'"')
     
    </script>
    il me met que obj.value est undefined...

    C'est juste un exemple que je comprends pas la


    Ensuite j'ai un autre problème... Sur IE, j'ai essayé d'utiliser
    pour connaitre le nombre d'occurences de mon id dans mon fichier c'est à dire si j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id = champ_input> 1 </div>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id = champ_input> 2</div>
    je voudrais avoir 2 en retour...

    Ca fonctionne sur IE mais pas sur firefox... Pourquoi? Merci

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    value n'existe que pour les élément de formulaire, pour les autres c'est innerHTML (par exemple)
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    1er problème :
    --------------

    C'est normal, un objet div n'a pas de propriété "value". Cette propriété est spécifique à des objets liés aux formulaires pour avoir la valeur courante de chaque champ.

    Mais si tu remplaces obj.value par obj.innerHTML (pas standard il me semble, mais pris en compte par la plupart des navigateurs), tu auras tout le contenu de ton bloc div.

    2ème problème :
    ----------------

    Il y a une erreur de conception. Un identifiant (id) doit être unique dans la page HTML ! Il va donc falloir trouver autre chose pour faire ça.

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    ensuite attention à la casse
    "Getelementbyid : Demande explication "

    les majuscule sont importantes.
    getElementById

    innerHTML est parfaitement standard. c'est le outerHTML qui est propre à IE la différence c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="myDiv"><p>test</p></div>
    myDiv.innerHTML donne:
    et myDiv.outerHTML donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="myDiv"><p>test</p></div>
    par contre ce qui n'est pas standard c'est la réaction du navigateur sur une mise à jour du innerHTML
    si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDiv.innerHTML = myDiv.innerHTML + <script ...</script>
    suivant le navigateur le script sera ou pas interprété.
    pour être sur il faut en passer par le DOM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    scr = document.createElement('script');
    ....
    myDiv.appendChild(scr);
    A+JYT

  5. #5
    Membre actif
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Points : 282
    Points
    282
    Par défaut
    Merci de toutes ses précisions !!

    heu pour la casse j'avais pas fait attention en postant mais j'avais bien écris dans mon code

Discussions similaires

  1. [Demande explication] COndition requete
    Par GarsDuCalvados dans le forum Requêtes et SQL.
    Réponses: 25
    Dernier message: 19/03/2007, 20h59
  2. Demande explication sur 1 CSS
    Par tigunn dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 02/03/2007, 17h27
  3. Demande explications classes interfaces
    Par schnito dans le forum Langage
    Réponses: 17
    Dernier message: 10/10/2006, 04h44
  4. Demande explication sur un composant ADO
    Par Golork dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/07/2005, 20h22
  5. [AWT] Demande Explications prog calculatrice
    Par smag dans le forum Débuter
    Réponses: 3
    Dernier message: 07/07/2005, 16h06

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