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 :

Masquer un élément HTML sous condition


Sujet :

JavaScript

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 1
    Par défaut Masquer un élément HTML sous condition
    Bonjour à tous,

    Je solicite votre aide sur la création d'un script permettant de masquer un élément si celui-ci ne possède pas de contenu.

    J'ai créé une boutique en ligne sur WordPress car je n'ai pas beaucoup de connaissance en programmation web, à part quelques notions en HTML/CSS.

    Sur ma page Boutique, j'ai inséré un plugin pour filtrer les produits par mots-clés, catégorie, prix, taxonomies... Dans les réglages de ce plugin, une option me permet de masquer les termes (checkbox) qui ne possèdent pas de résultat. Cependant, selon certaines catégories, se sont des taxonomies entières qui seront vide mais le bloc de la taxonomie est toujours visible, il a simplement masquer les termes/checkbox de son contenu.

    Par exemple, j'ai 2 catégories : "Maison & Jardin" et "Chaussures". J'ai un autre filtre "Pointure" qui est toujours affiché. Du coup, lorsque je sélectionne la catégorie "Maison & Jardin", il n'y a plus lieu d'afficher le filtre "Pointure" car tout son contenu est vidé de ses checkbox car aucune pointure ne correspond à cette catégorie.

    Comme vous pouvez le voir sur les screenshots ci-joints ou encore le site directement https://www.tillap.com/boutique/ j'aimerai masquer tout les éléments de type "taxonomy" par un simple [data-sf-field-type="taxonomy"]{display:none;} seulement SI il n'y a aucune ligne de type <li> dans la partie <ul> dans son contenu.

    Je pense qu'il doit y avoir moyen d'obtenir ce résultat en JavaScript mais je n'ai aucune connaissance dans ce langage c'est pourquoi j'aurai aimé être orienté vers la solution sur ce forum.

    Merci d'avance pour votre aide!

    Pièces jointes :
    Nom : 01.jpg
Affichages : 96
Taille : 62,9 Ko Nom : 02.jpg
Affichages : 87
Taille : 130,5 Ko

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 202
    Par défaut
    Bonjour et bienvenue sur DVP.

    Pour le principe si tu ne peux pas faire autrement que de ne pas les afficher au départ il te suffit de :
    • récupérer les éléments <ul> enfant de <li> ;
    • pour chacun, tester SI il n'y a pas d'enfant ALORS masquer le parent, <li> dans ce cas.

    Ce qu pourrait se traduire par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    const oULs = document.querySelectorAll("li ul");
    oULs.forEach((el) => {
    //Array.prototype.forEach.call(oULs, function (el) {  /* si support IE requis */
      if (!el.firstElementChild) {
        el.parentNode.style.display = "none";
      }
    });
    Nota : Il faut mettre ce script en fin de page pour que les éléments soient présents dans le DOM.

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/08/2018, 11h00
  2. Masquer-Afficher des colonnes sous conditions
    Par line78 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/06/2018, 17h45
  3. Rajout d'une ligne html sous condition
    Par theo16 dans le forum jQuery
    Réponses: 2
    Dernier message: 08/12/2015, 10h46
  4. Réponses: 9
    Dernier message: 10/12/2009, 19h03
  5. Masquer les éléments de mon sous-menu
    Par djolof dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 11/09/2009, 11h28

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