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 :

Height du parent


Sujet :

jQuery

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 24
    Par défaut Height du parent
    Bonjour,

    Je débute en jQuery et j'ai un problème (oui, ne vous inquiété pas, j'ai fouiller google ).

    Sur mon site, chaque box contient 4 image, puis j'aimerais que si .height de la box est <= 230, alors .remove("les 4 images").

    J'arrive, oui, mais si une seule des box est de <= 230 alors, les autre aussi ont plus d'image. J'ai essayer un for each, mais en réfléchissant cela ne peux pas fonctionner.

    Donc la solution serait de tester si $('.une des images').parent('la .height de la box est de >= 230')

    Et c'est ça que je ne sais pas comment faire !

    Merci d'avance de votre aide !

    flechenoir.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    J'ai essayer un for each, mais en réfléchissant cela ne peux pas fonctionner.
    il serait peut être intéressant que tu fournisses ton code même si il ne fonctionne pas pour que l'on puisse te dire ce qui ne va pas !

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 24
    Par défaut
    Salut !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $('div.box').each(function(){
            $('.box-border-2').parent('div.box'.height <= 230).remove();
            $('.box-border-2-r').parent('div.box'.height <= 230).remove();
    });
    //NE MARCHE PAS
    J'ai dû refaire le code car je n'avais "sauvegarder" ce code qui ne fonctionnait pas. Du coups j'ai également tester autre chose qui n'a pas l'air de fonctionner donc je laisse celui la...

    Merci de votre aide !

    EDIT: ce code supprime toutes les box. Je n'arrive pas a comprendre.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Ta syntaxe est assez étrange, le principe est le suivant
    POUR TOUTES les boites FAIRE
        SI hauteur_boite INF A 230 ALORS
          Supprimer les enfants_boite
        FIN SI
    FIN FAIRE

  5. #5
    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
    ce code supprime toutes les box. Je n'arrive pas a comprendre
    Au-delà de l'aspect un peu loufoque de ton code, c'est tout à fait logique : parent('div.box'.height <= 230) n'est pas une syntaxe correcte. Le seul argument possible pour .parent() est un sélecteur, or ce que tu passes un booléen, ce qui revient à passer une chaine vide et dans tous les cas, la parent est supprimé...

    Mais encore une fois, comme indiqué par NoSmoking, la logique de ton code est à revoir en priorité...
    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

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 24
    Par défaut
    Ta syntaxe est assez étrange, le principe est le suivant

    POUR TOUTES les boites FAIRE
    SI hauteur_boite INF A 230 ALORS
    Supprimer les enfants_boite
    FIN SI
    FIN
    Oui, mais regarder a quoi ressemble (en gros et très simplifier) le code:

    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
    <!-- Cette box a une hauteur supérieure a 230 -->
    <div class="box">
       <img class="1">
       <img class="2">
    </div>
    <!-- Cette box a une hauteur inférieure a 230 -->
    <div class="box">
       <img class="1">
       <img class="2">
    </div>
    <!-- Cette box a une hauteur supérieure a 230 -->
    <div class="box">
       <img class="1">
       <img class="2">
    </div>

    La box inférieure a 230 doit supprimer ses 2 images, tant dis que les autres doivent garder leur images.

    Comment auriez vous fait alors ?

    Merci pour votre aide précieuse.

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $('.box-border-2').parent('div.box'.height <= 230).remove();
    puisque 'div.box'.height aurait pu être un objet existant, mais dans ce cas il est null, et puisque un null <= un int est viable.... je pense que cela doit être une bool non prise en charge, le résultat serait le même que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $('.box-border-2').parent().remove();
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $('.box-border-2').parent(true).remove();
    mais assez farfelu en effet

  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


    'div.box' est une chaine, 'div.box'.height recherche la propriété height d'une chaine, et comme la hauteur d'une chaine n'a pas vraiment de sens, cette propriété n'existe pas, donc 'div.box'.height vaut undefined.
    D'autre part, comme déjà dit, l'ensemble reste une condition, or la méthode .parent() attend en argument un sélecteur, pas une condition.

    Enfin, la logique en elle-même est pour le moins baroque... Pour reprendre la réponse de NoSmoking, il fait
    POUR TOUTES les DIV ayant la classe .box
        RECHERCHER TOUTES les DIV ayant la classe .box-border-2 et supprimer leur parent .box (puisque le paramètre passé est non conforme)
        RECHERCHER TOUTES les DIV ayant la classe .box-border-2-r et supprimer leur parent .box (puisque le paramètre passé est non conforme)
    Ce qui signifie que toutes les itérations font exactement la même chose et que surtout, tu cherches à partir d'un parent (.box) des enfants afin de déterminer si le parent .box rempli une condition pour la supprimer.
    Beaucoup d'étapes inutiles...
    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
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Citation Envoyé par Flechenoir
    Comment auriez vous fait alors ?
    le plus simplement du monde, je suivrais les instructions que je t’ai données à savoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var lstDiv = $('div.box');
    //POUR TOUTES les boites FAIRE
    lstDiv.each(function(){
    //    SI hauteur_boite INF A 230 ALORS
          if( $(this).height() < 230){
    //      Supprimer les enfants_boite
            $(this).find('img').remove();
    //    FIN SI
          }
    //FIN FAIRE
    });

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 24
    Par défaut
    Merci beaucoup ! Ça marche, nickel !

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

Discussions similaires

  1. height auto parent-enfant
    Par radagast35 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 24/06/2009, 14h57
  2. Parent et Create
    Par Arrown dans le forum Composants VCL
    Réponses: 4
    Dernier message: 09/10/2003, 11h13
  3. Comment reloader la frame parent?
    Par mythtvtalk.com dans le forum ASP
    Réponses: 3
    Dernier message: 27/08/2003, 11h40
  4. Conception d'une classe parente
    Par VincentB dans le forum Langage
    Réponses: 9
    Dernier message: 24/06/2003, 17h28
  5. DLL, affichage et parent...
    Par KRis dans le forum Composants VCL
    Réponses: 6
    Dernier message: 13/12/2002, 17h01

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