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

jQuery Discussion :

jQuery: parcours d'un tableau


Sujet :

jQuery

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Par défaut jQuery: parcours d'un tableau
    bonjour,

    j'aurais besoin d'un coup de main pour le parcours du DOM sur un tableau.
    Prenons un exemple:
    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
     
    <table>
    <head>
    	<tr>
    	<th>col1</th>
    	</tr>
    </head>
    <tr>
    <td>1</td>
    <td>2</td>
    <td><img class="affich2" src="..." alt="..."/></td>
    <td>4</td>
    <td><img  class="click1" src="..." alt="..."/></td>
    </tr>
    </table>
    En clickant sur l'image ayant la class click1 comment changer l'image dans la cellule du dessus (avec la classe affich2)?
    J'ai essayé de plein de manières differentes depuis ce matin et j'obtiens aucun résultat.
    Expl:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $(".click1").click(function(){			
    		$(".affich2").parent().attr({ src: "images/valider.jpg", alt: "validee.jpg" });			
    	});
    Si quelqu'un pouvait m'aider à comprendre la manipulation du DOM ca m'aiderait beaucoup.

    edit: La taille du tableau est variable donc un parcours "statique" n'est pas envisageable.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $(".click1").click(function(){			
       $(".affich2").attr({ src: "images/valider.jpg", alt: "validee.jpg" });
       return false;	
    });
    Et comme cela?
    A+

    edit: tes cellules sont au même niveau !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Par défaut
    J'avais déjà test ca (j'aurais dû le poster en exemple d'ailleur) et le problème s'est que ca me modifie toute les images qui possedent la class affich2.
    Mon tableau d'exemple est un peu bidon c'est vrai.
    En fait pour chaque ligne j'ai une image de validation sur la derniere colonne qui, lorsque l'on click dessus, change l'etat d'une autre image (toujours sur la même ligne mais une autre colonne).
    Donc le code marche plus où moins car ca change toute les images de toutes les lignes au lieu de celle concerné seulement.

    Je suis assez clair?

    edit: ce que j'essaie de faire depuis ce matin c'est en fait d'associer la ligne courante (this) à l'image.
    associer un this à cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(".affich2").attr({ src: "images/valider.jpg", alt: "validee.jpg" });

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Et avec cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $(document).ready(function(){
        $(".click1").click( function(){
           $(this).parent().siblings().children(".affich2").attr({src: "connect.png", alt: "Connecté"});
           return false;
        });
    });
    Pour le tableau:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <table>
      <head>
      	<tr>
      	<th>col1</th>
      	</tr>
      </head>
      <tr>
        <td>11</td>
        <td>12</td>
        <td><img class="affich2" src="disconnect.png" alt="Déconnecté"/></td>
        <td>14</td>
        <td><img  class="click1" src="phone.png" alt="Connexion"/></td>
      </tr>
      <tr>
        <td>21</td>
        <td>22</td>
        <td><img class="affich2" src="disconnect.png" alt="Déconnecté"/></td>
        <td>24</td>
        <td><img  class="click1" src="phone.png" alt="Connexion"/></td>
      </tr>
      <tr>
        <td>31</td>
        <td>32</td>
        <td><img class="affich2" src="disconnect.png" alt="Déconnecté"/></td>
        <td>34</td>
        <td><img  class="click1" src="phone.png" alt="Connexion"/></td>
      </tr>
    </table>

    A+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Rere::

    Pour la bascule sur le click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $(document).ready(function(){
        $(".click1").click( function(){
          if ($(this).parent().siblings().children(".affich2").attr("src") == "disconnect.png") {
            $(this).parent().siblings().children(".affich2").attr({src: "connect.png", alt: "Connecté"});
          }
          else {
            $(this).parent().siblings().children(".affich2").attr({src: "disconnect.png", alt: "Déconnecté"});
          }
          return false;
        });
    });
    En tassant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $(document).ready(function(){
        $(".click1").click( function(){
          var myvar = $(this).parent().siblings().children(".affich2");
          myvar.attr("src")=="disconnect.png"?myvar.attr({src:"connect.png",alt:"Connecté"}):myvar.attr({src:"disconnect.png",alt:"Déconnecté"});
        });
     });
    A+

    edit: à voir ICI avec icones de chez FamFamFam
    edit 2: Les explications, c'est mieux!
    On cherche le "parent" de l'élément cliqué (c'est le "td"), dans ce parent, on prend les frères "siblings" (les autres "td" de la même ligne). Et on prend l'élément de class = affich2 qui est le fils "children" d'un des frères !! Clair quoi
    Dernière modification par Invité ; 25/08/2008 à 20h09.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 76
    Par défaut
    Un grand merci à toi jlmag!
    Franchement merci d'avoir pris le temps de coder un autre exemple, c'est vraiment . La fonction siblings() qui me parlait pas du tout, je risquais pas de trouver de sitôt.
    Sinon j'ai une dernière question, le à la fin sert à quoi? (avec où sans ca change rien)

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

Discussions similaires

  1. [Tableaux] Parcours d'un tableau
    Par wormseric dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2006, 13h53
  2. [MySQL] Parcours d'un tableau et suppression des entrées
    Par padoberg dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/07/2006, 13h41
  3. probleme de parcours d'un tableau
    Par rodriguez_du35 dans le forum Langage
    Réponses: 4
    Dernier message: 29/05/2006, 09h16
  4. parcours d un tableau de l interface graphique
    Par natasha84 dans le forum MFC
    Réponses: 7
    Dernier message: 26/05/2006, 23h29
  5. Parcour d un tableau dynamique
    Par harris_macken dans le forum Débuter
    Réponses: 12
    Dernier message: 24/05/2005, 22h23

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