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 :

Les fonctions lier au objets html


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut Les fonctions lier au objets html
    Bonjour, j'aimerais stocker une fonction qui est dans un objet html, prenons element.attributes.item par exemple, où élément est l’élément html, est l’exécuter mais pourquoi lorsque j’exécute ma fonction alors stocké dans ma variable a, cela ne marche pas ?

    De cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var a = document.getElementById("monDiv").attributes.item;
    a(0); // ne marche pas, firebug ne signal aucune erreur mais ne renvoit rien
    Merci d'avance de votre aide !

  2. #2
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Coucou,

    essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var a = document.getElementById("monDiv").getAttribute("item");
    alert(a);

  3. #3
    Membre confirmé Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    Coucou

    item n'est pas un attribut mais une fonctions belle est bien défini dans l’objet 'attributes' d'un élément html regarde dans la console firebug si tu peus

    Tu vois ?

  4. #4
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Ha oui excuse moi j'ai mal compris

    Déjà, ton code me donne une erreur sous FF moi Tu devrais essayer quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var a = document.getElementById("monDiv").attributes.item(0);
    alert(a);

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

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    bonjour en javascript lorsqu'on assigne une fonction à un objet la référence this interne à la fonction devient l'objet auquel la fonction est attachée.

    dans ton cas tu à un objet attributes qui possède une méthode items
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    arrtibuttes : {
      datas: [...], 
      items: function (id) {return this.data[id];}
    }
    tu récupère une référence sur cette fonction que tu mets dans la variable a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var a = attributes.items
    En faisant cela tu crée un nouveau nom pour la méthode que tu attaches à l'objet de contexte d'exécution.
    donc dans la fonction tu vas faire un this.data[id] ors this n'est pas l'objet attributes mais l'objet de contexte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    a = {
      name:"I'm A",
      show: function() {alert (this.name)}
    }
    b = {
      nom:"I'm B"
    }
    b.display = a.show;
    b.display();
    dans cet exemple la fonction show est attachée à l'objet b l'ors de l'exécution de display vas donc faire alert (this.name)
    or name n'existe pas dans l'objet b

    A+JYT

  6. #6
    Membre confirmé Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    c bien ce qui me semblait merci de votre aide

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/09/2012, 14h10
  2. Réponses: 3
    Dernier message: 13/04/2010, 09h14
  3. Fonction MAX sur les propriétés d'un objet
    Par mleddet dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/09/2009, 15h34
  4. [DOM] utiliser les fonctions Node sur des balises html
    Par durthu dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/10/2007, 14h42
  5. Comment Obtenir en JS les infos d'un objet HTML ?
    Par prin-prin dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/12/2005, 16h50

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