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 :

Supprimer plusieurs checkbox dans une boucle


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 1
    Par défaut Supprimer plusieurs checkbox dans une boucle
    Bonjour à tous.

    J'aimerais savoir comment on fait pour supprimer plusieurs checkbox qui sont cochés avec le label qui va avec en javascript.

    J'ai déjà fait un parcours de liste mais cela ne mes supprime que de un à un .

    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
        <div id="Div">
            <input class="scene" type="checkbox" name="salut">
            <input class="scene" type="checkbox" name="salut">
            <input class="scene" type="checkbox" name="salut">
        </div>
        <button onclick="supprimerBouton1()" type="button" class="btn btn-danger btn-circle btn-sm"></button>
      function supprimerBouton1() {
     
                var d = document.getElementsByClassName("scene");
     
                for (var i = 0; i < d.length; i++) {
                    if (d[i].checked) {
                        d[i].remove();
                        console.log(d[i]);
                    }
                }
            }

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Essais en inversant ta boucle For.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (var i = d.length - 1; i >=0; i--)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

    .remove(), en supprimant un élément, va modifier/réordonner les index des éléments restant.
    Donc for(i=0 ...... i++) ne va pas fonctionner comme voulu *.


    Solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function supprimerBouton1() {
     
      var d = document.querySelectorAll(".scene");
     
      for(elt of d){
        if (elt.checked) {
          elt.remove();
        }
      }
     
    }
    [EDIT] * La solution (astucieuse !)** de ProgElecT va aussi fonctionner, car les éléments seront supprimés à partir de l'index le plus grand vers le plus petit (ce qui ne perturbe pas les index restants).

    ** On avait déjà rencontré cette problématique dans une autre discussion, il me semble.

  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
    Bonjour,

    Citation Envoyé par jreaux62
    var d = document.querySelectorAll(".scene");
    Tant qu'à faire autant cibler plus précisément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function supprimerChecked() {
      const listNodeChecked = document.querySelectorAll(".scene:checked");
      listNodeChecked.forEach((el) => el.remove())
    }

    Citation Envoyé par jreaux62
    ** On avait déjà rencontré cette problématique dans une autre discussion, il me semble.
    Plusieurs fois même mais tu fais peut-être référence à cette discussion : Supprimer des éléments d'une liste

  5. #5
    Invité
    Invité(e)
    Par défaut
    Exact.

    Mais ça, c'était avant......
    ......le monde d'avant......
    ......avant le confinement.

Discussions similaires

  1. Trouver plusieurs CheckBox dans une page avec une boucle
    Par Stephane_br dans le forum Développement Web avec .NET
    Réponses: 2
    Dernier message: 27/02/2014, 12h12
  2. declarer plusieurs JcheckBox dans une boucle
    Par 01211983 dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 21/02/2008, 01h47
  3. [Conception] checkbox dans une boucle while
    Par SAFOne dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 22/12/2006, 14h05
  4. Problème de checkbox dans une boucle
    Par LeLapinVengeur dans le forum Struts 1
    Réponses: 5
    Dernier message: 01/12/2006, 17h07
  5. [VBA-E] checkbox dans une boucle
    Par richou dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/05/2006, 14h59

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