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 :

Action sur div parents


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut Action sur div parents
    Bonjour à Tous,

    Je dispose de plusieurs DIV "conteneur" avec des images à l'interieur :

    Code : 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
    <DIV ID="conteneur">
    <img id="1" src="image1.png" onClick="border(1);">
    <img id="2" src="image2.png" onClick="border(2);">
    <img id="3" src="image4.png" onClick="border(3);">
    </DIV>
     
    <DIV ID="conteneur">
    <img id="4" src="image4.png" onClick="border(4);">
    <img id="5" src="image5.png" onClick="border(5);">
    </DIV>
     
    <DIV ID="conteneur">
    <img id="6" src="image6.png" onClick="border(6);">
    <img id="7" src="image7.png" onClick="border(7);">
    <img id="8" src="image8.png" onClick="border(8);">
    <img id="9" src="image9.png" onClick="border(9);">
    </DIV>
    Ensuite, grace à la fonction border, lorsque je click sur une image, celle-ci devient entourée d'une bordure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script language="JavaScript">
    function border(id){
    document.getElementById(id).style.border="1px solid #3d4931"; // J'ajoute une bordure à l'image cliquée.
    }
    </script>
    A présent, ce que je cherche à faire c'est appliquer un fond coloré à ma DIV "conteneur" qui contient l'image cliquée.

    De quelle façon, par javascript, peut-on séléctionner la DIV parents sans séléctionner les autres DIV qui ont le même ID ?

  2. #2
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu commets plusieurs erreurs dans ton code :
    • <script language="JavaScript"> : l'attribut language ne doit plus être utilisé, en revanche, il faut utiliser l'attribut type : type="text/javascript".
    • Un id DOIT être unique dans la page.
    • Un id ne doit pas commencer par un chiffre.


    Sinon, pour répondre à ta question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function border(id){
    document.getElementById(id).style.border="1px solid #3d4931"; // J'ajoute une bordure à l'image cliquée.
    document.getElementById(id).parentNode.style.backgroundColor="ta_couleur";
    }
    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

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

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Salut,

    Merci pour ta réponse

    Je vais appliquer tes conseils mais j'aimerais juste comprendre pourquoi un id ne doit pas commencer par un chiffre ?

  4. #4
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Bah... pour tout dire, s'il y a une raison logique, je ne la connais pas
    Ceci dit, c'est comme ça qu'un id est défini par les standards XML.
    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

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

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    D'accor Donc c'est une regle à connaitre un point c'est tout ;-)

    Sinon, dernière petite question :

    Avec mon même exemple, si je selectionne directement une div "conteneur". Comment faire pour ajouter une bordure sur la premiere image qui est contenu dans cette div ?

    D'avance merci !

  6. #6
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il existe plusieurs possibilités, mais selon moi, la meilleure serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    divconteneur.getElementsByTagName('img')[0].style.border = '...';
    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

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

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Jai essayé plusieurs choses mais voilà ce que j'obtiens :

    div.getElementsByTagName("img")[0] is undefined


  8. #8
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu définis comment div ?
    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

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Voilà la fonction complete lorsqu'on click sur l'image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function border(j){
     
    var f = "f" + j;
    var div = document.getElementById(f);
     
    div.style.color="white";
     
    div.getElementsByTagName('img')[0].style.border = "1px solid #3d4931";
     
    }
    le "div.style.color="white";" Fonctionne très bien, donc ma variable div doit être bonne.

    J'ai ajouté un ' f ' au nom de la DIV pour évité qu'elle commance par un chiffre

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Il existe plusieurs possibilités, mais selon moi, la meilleure serait :
    Et les autres solutions seraient ?

    Parce que là j'y arrive pas

  11. #11
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ben il n'y a aucune raison pour que cela ne fonctionne pas

    Pourrais-tu montrer le code JavaScript + HTML correspondant actuel ?
    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

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    C'est goooood

    J'ai bien compris le fonctionnement ;-)

    Ca marche, merci !

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

Discussions similaires

  1. Bloquer exécution d'une action sur sx:div
    Par arnaud.tlse dans le forum Struts 2
    Réponses: 1
    Dernier message: 25/12/2009, 00h42
  2. Action conditionnelle sur div
    Par yoyotheboss7 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/03/2009, 02h23
  3. Action d'un hyperlien sur conteneur parent
    Par Sub0 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 10/11/2008, 12h43
  4. Actions sur des div à l'intérieur d'une table
    Par Luke58 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/06/2007, 08h53
  5. Action sur balise div
    Par licorne dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/05/2007, 13h51

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