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 :

Stocker un attribut (ou une propriété) arbitraire à un noeud du dom


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut Stocker un attribut (ou une propriété) arbitraire à un noeud du dom
    Bonjour,

    Je souhaite , sur une page que je génère dynamiquement, passer des variables à des noeuds du DOM, afin de pouvoir travailler dessus en js.

    Conceptuellement, je souhaite avoir une page html contenant par exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id="myDiv" myValue="hello world">...</div>

    Toutefois, je suppose que générer un tel code html n'est pas très propre (en particulier, je dois violer allègrement ma dtd) ; et je n'ai aucune certitude quant à la portabilité de cette solution.

    Aussi, ma question est : quelle est la manière canonique de
    - passer de telles valeurs lors de la génération dynamique de ma page
    - lire / réécrire ces valeurs, en js, durant la durée de vie de ma page ?

    (À titre indicatif : je souhaite, pour ma culture, savoir comment le faire en js "pur", mais puisque j'utilise mootools, des réponses utilisant ce framework me satisferont également)

    Je vous remercie par avance.

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    disons que tu peux affecter une propriété arbitraire à un objet dom par simple déclaration;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mon_objet.myValue="Hello World";
    ce qui ne déclenchera pas une apocalypse au niveau du dom;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut
    Merci pour cette réponse. En faisant ainsi, je peux associer des variables à des noeuds du dom durant la vie de la page.

    En revanche, m'est-il possible de faire en sorte d'avoir ces variables dès le départ (ie : avant que le js s'exécute), ou alors dois-je obligatoirement ajouter une couche de js d'initialisation pour setter ces valeurs ?

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    malheureusement tous les navigateurs ne reconnaissent pas les propriétés exotiques au démarrage.
    Il te faudra en effet ajouter une couche d'initialisation su le onload de la page.

    Certains ne sont pas firands de cette methode de surcharge de propriétés des objets.
    Jquery utilise un data() qui permet de stocker des données au niveau de l'objet sans modifier le DOM
    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 !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut
    Je vous remercie pour ces réponses, qui m'aident à y voir plus clair.
    Je vais pouvoir adapter mon code en conséquence.

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    malheureusement tous les navigateurs ne reconnaissent pas les propriétés exotiques au démarrage.
    FAUX :
    element.getAttribute('monattribut');
    fontionnera PARTOUT.
    Citation Envoyé par SpaceFrog Voir le message
    Il te faudra en effet ajouter une couche d'initialisation su le onload de la page.
    Inutile, et rajoute plus de taf que nécessaire
    Citation Envoyé par SpaceFrog Voir le message
    Certains ne sont pas firands de cette methode de surcharge de propriétés des objets.
    Oui, car les DTD sont là pour justement spécifier le HTML, mais au final un attribut exotique c'est n'est pas la mort.
    Citation Envoyé par SpaceFrog Voir le message
    Jquery utilise un data() qui permet de stocker des données au niveau de l'objet sans modifier le DOM
    Voila une solution

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut
    Merci pour ces précisions !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/10/2011, 13h32
  2. retrouver un attribut d'une propriété
    Par ppphil dans le forum C#
    Réponses: 5
    Dernier message: 10/06/2010, 11h14
  3. Réponses: 10
    Dernier message: 03/03/2009, 00h19
  4. [Castor] Accéder à une propriété d'un attribut
    Par neuromencien dans le forum Persistance des données
    Réponses: 1
    Dernier message: 10/08/2007, 17h44
  5. Attribution d'une propriété ou méthode
    Par kgb1917 dans le forum Access
    Réponses: 12
    Dernier message: 25/05/2007, 15h13

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