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 :

Comment utiliser une variable dans un sélecteur ?


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Par défaut Comment utiliser une variable dans un sélecteur ?
    Bonjour,

    Pouvez vous m'expliquer comment utiliser une variable dans un sélecteur jQuery?

    L'idée c'est de faire:
    Code html : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <!DOCTYPE html> <!--on declare au validator le langage utilisé-->
    <html>
    <head>
     
    <!-- Bootstrap core CSS -->
    <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">		<!--déclaration du fichier CSS dans sa version minifiée-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
     
    <style type="text/css">
    #image1{position: relative; z-index:200;}
    #image2{position: relative; z-index:200;}
    #image2{position: relative; z-index:200;}
    #close1{z-index:1000;}
    #close2{z-index:1000;}
    #close3{z-index:1000;}
    </style>
     
    </head>
     
    <body>
     
    <img src="close.png" id="close1" class="img-circle" />
    <img src="close.png" id="close2" class="img-circle" />
    <img src="close.png" id="close3" class="img-circle" />
     
    <img src="gravure1petit.jpg" id="image1" />
    <img src="gravure2petit.jpg" id="image2" />
    <img src="gravure3petit.jpg" id="image3" />
     
    <br><br><br><br><br><br><br><br><br><br>
     
    <span id="afficher"></span>
     
    <script src="jquery.js"></script>
    <script>
    jQuery(document).ready(function(){                                      /*attente de la disponibilite du DOM*/
     
            for (i=0, i<4, i++) {
            var coord_image+i = $('#image'+i).offset();             /*variable intermediaiare qui recupere les coordonnees, position absolue, de l'image de classe imagei*/
                    $('#close'+i).offset(coord_image+i);            /*on modifie les coord de l element de classe closei
            
    });
    </script>
     
    </body>                                         
     
    </html>

    Cordialement

  2. #2
    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
    Je pense que le souci est plutôt au niveau de la compréhension de offset() ...

    http://api.jquery.com/offset/
    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 !

  3. #3
    Membre éclairé
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Par défaut
    Merci SpaceFrog

    offset() me permet de placer les pastilles(image close) en haut à gauche des grandes images

    ça fonctionne très bien avec l'écriture suivante:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <!DOCTYPE html> <!--on declare au validator le langage utilisé-->
    <html>
    <head>
     
    <!-- Bootstrap core CSS -->
    <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">		<!--déclaration du fichier CSS dans sa version minifiée-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
     
    <style type="text/css">
    #image1{position: relative; z-index:200;}
    #image2{position: relative; z-index:200;}
    #image2{position: relative; z-index:200;}
    #close1{z-index:1000;}
    #close2{z-index:1000;}
    #close3{z-index:1000;}
    </style>
     
    </head>
     
    <body>
     
    <img src="close.png" id="close1" class="img-circle" />
    <img src="close.png" id="close2" class="img-circle" />
    <img src="close.png" id="close3" class="img-circle" />
     
    <img src="gravure1petit.jpg" id="image1" />
    <img src="gravure2petit.jpg" id="image2" />
    <img src="gravure3petit.jpg" id="image3" />
     
    <br><br><br><br><br><br><br><br><br><br>
     
    <span id="afficher"></span>
     
    <script src="jquery.js"></script>
    <script>
    jQuery(document).ready(function(){				/*attente de la disponibilite du DOM*/
    	var coord_image1 = $('#image1').offset();	/*variable intermediaiare qui recupere les coordonnees, position absolue, de l'image de classe image1*/
    	$('#afficher').text('Ximage='+coord_image1.left+' Yimage='+coord_image1.top);
    	$('#close1').offset(coord_image1);			/*on modifie les coord de l element de classe close1*/
     
    	var coord_image2 = $('#image2').offset();	/*variable intermediaiare qui recupere les coordonnees, position absolue, de l'image de classe image1*/
    	$('#afficher').text('Ximage='+coord_image2.left+' Yimage='+coord_image2.top);
    	$('#close2').offset(coord_image2);			/*on modifie les coord de l element de classe close2*/
     
    	var coord_image3 = $('#image3').offset();	/*variable intermediaiare qui recupere les coordonnees, position absolue, de l'image de classe image1*/
    	$('#afficher').text('Ximage='+coord_image1.left+' Yimage='+coord_image3.top);
    	$('#close3').offset(coord_image3);			/*on modifie les coord de l element de classe close3*/
    });
    </script>
     
    </body>                                         
     
    </html>
    Ce que je veux c'est automatiser l'écriture jQuery avec une incrémentation i++

  4. #4
    Membre très actif
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Par défaut
    quelle est ton erreur dans ton 1er script , tu utilises la bonne méthode pour utiliser une variable dans un sélecteur en JQuery, mais tu as des erreurs de syntaxe, ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (i=0, i<4, i++) {
    	var coord_image+i = $('#image'+i).offset();		/*variable intermediaiare qui recupere les coordonnees, position absolue, de l'image de classe imagei*/
    		$('#close'+i).offset(coord_image+i);		/*on modifie les coord de l element de classe closei
     
    });
    Pourquoi faire tu concatènes un nom de variable avec la valeur d'une variable , je comprends pas ce que tu veux faire la mais ça m'a l'air inutile, cela suffit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (i=0, i<4, i++) {
    	var coord_image = $('#image'+i).offset();		/*variable intermediaiare qui recupere les coordonnees, position absolue, de l'image de classe imagei*/
    		$('#close'+i).offset(coord_image);		/*on modifie les coord de l element de classe closei
     
    });

  5. #5
    Membre éclairé
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Par défaut
    Merci pour ta contribution

    L'erreur vient aussi de l'écriture for (i=1; i<4; i++); j'avais mi des "," alors qu'il faut des ";"

    Pour ceux que ça intéresse les écritures suivantes permettentd'incorporer des variables dans les sélecteurs jQuery:

    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
     
    for (i=1; i<4; i++) {
    var coord_image = $('#image'+i).offset();
    $('#close'+i).offset(coord_image);
    }
     
     
    for (i=1; i<4; i++) {
    var coord_image = $('#image'+i).offset();
    $('#close'+i).offset(coord_image);
    }
     
     
    for (i=1; i<4; i++) {
    var id_image="#image"+i;
    var coord_image = $(id_image).offset();
    var id_close="#close"+i;	
    $(id_close).offset(coord_image);
    }
     
     
    for (i=1; i<4; i++) {
    var coord_image = $('#image'+[i]).offset();
    $('#close'+[i]).offset(coord_image);
    }

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

Discussions similaires

  1. comment utiliser une variable dans MySQL
    Par lecaire dans le forum Débuter
    Réponses: 6
    Dernier message: 17/08/2009, 22h57
  2. Réponses: 6
    Dernier message: 23/08/2007, 09h49
  3. Comment utiliser des variables dans une requête SQL ?
    Par Ragnarok85 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 12/02/2007, 16h23
  4. Réponses: 2
    Dernier message: 22/08/2006, 11h28
  5. Réponses: 5
    Dernier message: 04/05/2006, 21h02

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