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 :

Passer une variable à eq() ou nth-child ?


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    manager
    Inscrit en
    Janvier 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Irlande

    Informations professionnelles :
    Activité : manager

    Informations forums :
    Inscription : Janvier 2011
    Messages : 75
    Par défaut Passer une variable à eq() ou nth-child ?
    Bonjour,

    Dans un scrpit j'ai parfois besoin de modifier le contenu html d'un header.

    Ce script contient une variable, disons 'ma_cible', qui doit servir à préciser quel header est visé par l'opération.
    Je n'arrve pas à transmettre l'information à Jquery . J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('header:eq(ma_cible)').html(texte);
    et aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('header:nth-child(ma_cible)').html(texte);
    Aucun des deux ne fonctionne ; appremment eq() et nth-child ne supportent pas les variables...
    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    si "ma_cible" est une variable qui contient l'identifiant d'une balise, vous pouvez construire le sélecteur comme ça :

  3. #3
    Membre confirmé
    Profil pro
    manager
    Inscrit en
    Janvier 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Irlande

    Informations professionnelles :
    Activité : manager

    Informations forums :
    Inscription : Janvier 2011
    Messages : 75
    Par défaut
    Non, j'aurais du préciser que c'est un entier, un compteur qui me dit que, par exemple, la formule doit s'appliquer au cinquième header du document

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salut, la pseudo classe :nth-child(entier) te conviendra amplement :

    Il s'agit d'un sélecteur capable de cibler un unique via son entier index un seul élément HTML ou un range en utilisant n+entier n-entier il peut aussi être combiné en plusieurs pseudo classe :nth-child(n+1):nth-child(n-5) pour cibler un groupe élément html à partir de n index > vers n index inférieur .. etc.

    plus d'information

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    header:nth-child(5){
      background-color:red;
    }

    Démo :

    https://codepen.io/headmax/pen/jaYLXX

  5. #5
    Membre confirmé
    Profil pro
    manager
    Inscrit en
    Janvier 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Irlande

    Informations professionnelles :
    Activité : manager

    Informations forums :
    Inscription : Janvier 2011
    Messages : 75
    Par défaut
    On dirait bien que non car il semble qu'on ne peut pas lui passer de variables ; elle n'accepte que des entiers.

    Voici un bout de mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var myOSM = <?php echo $OSM; ?>;
    var txt=$('header:nth-child(myOSM)').html();
    et le HTML produit par PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var myOSM = 1;
    var txt=$('header:nth-child(myOSM)').html();
    Il ne fait pas du tout ce que je souhaite. Par contre si je code 'en dur' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var txt=$('header:nth-child(1)').html();
    là, ça marche nickel-chrome...

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Essaye de Caster ta donné en integer (forcer la variable pour qu'elle soit un entier en pas un string). Pour voir si ça marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var myOSM = <?php echo $OSM; ?>;
    var txt=$('header:nth-child( ' + parseInt(myOSM) + ')).html();

  7. #7
    Membre confirmé
    Profil pro
    manager
    Inscrit en
    Janvier 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Irlande

    Informations professionnelles :
    Activité : manager

    Informations forums :
    Inscription : Janvier 2011
    Messages : 75
    Par défaut
    J'ai trouvé ! C'est en écrivant mon dernier post que l'inspiration m'a foudroyé !

    Au lieu de créer une variable javascript supplémentaire, il suffit d'injecter directement la variable PHP de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('header:nth-child(<?php echo $OSM; ?>)').html();
    Et tout roule ! Merci de votre attention et de votre aide.

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

Discussions similaires

  1. Passer une variable a une child window
    Par chris81 dans le forum Silverlight
    Réponses: 4
    Dernier message: 11/01/2010, 17h10
  2. Passer une variable C à un script en Javascript
    Par aquouel dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/09/2005, 17h41
  3. [Custom Tags 1.2] Passer une variable comme valeur d'attribut d'un tag jsp
    Par Pi2 dans le forum Taglibs
    Réponses: 7
    Dernier message: 16/09/2005, 14h44
  4. Passer une variable entre deux fenêtres
    Par DeezerD dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2005, 09h52
  5. [Struts] Passer une variable dans l'url
    Par pilz dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/03/2005, 15h23

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