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 :

Compréhension du sélecteur is() vs not()


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    Intérimaire
    Inscrit en
    Mai 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Intérimaire

    Informations forums :
    Inscription : Mai 2017
    Messages : 91
    Points : 60
    Points
    60
    Par défaut Compréhension du sélecteur is() vs not()
    Bonjour à tous;

    Je rencontre une erreur JQUERY que j'ai du mal à saisir, voici mon premier test avec le html suivant :

    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
    <body>
    	<!-- <select>
    		<option>Toto1</option>
    		<option>Toto2</option>
    	</select> -->
    <div id="graphiques">
    	<div class="container">
    		<p id="Toto1">Toto1</p>
    	</div>
    	<div class="container">
    		<p id="Toto2">Toto2</p>
    	</div>
    </div>
    </body>
    .

    et Jquery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $(document).ready(function(){
    	// var $select = $('select'),
    	// 		select_val='';
     
    	// $select.on('change',function(){
    	// 	select_val = $select.val();
    	$('.container').children().not("#Toto2").hide();
    	// });
    });
    celui fonctionne bien avec le not mais pas avec le "is" et je rencontre l'erreur suivante :
    jQuery.Deferred exception: $(...).children(...).is(...).hide is not a function
    Comment cela se fait il ?

    Merci beaucoup d'avance

  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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    je pense que le souci provient du fait que le is() ne fait pas office de filtre ... mais retourne true si au moins un des elements matche le selecteur ?


    Essaye plutot avec filter()


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.container').children().filter( function(){ return $(this).attr('id'!="#Toto2" }).hide();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.container').children().filter( function(){ return !$(this).is("#Toto2") } ).hide();
    ou le selecteur ":not()"
    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 du Club
    Homme Profil pro
    Intérimaire
    Inscrit en
    Mai 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Intérimaire

    Informations forums :
    Inscription : Mai 2017
    Messages : 91
    Points : 60
    Points
    60
    Par défaut
    Ah d'accord ^^

    Je pensais que le .is faisait la même chose que le not mais à l'inverse ^^

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

    ce n'est pourtant pas difficile de chercher et trouver la DOC (et ça doit devenir un réflexe !) :


    Description:
    Remove elements from the set of matched elements.

    Description:
    Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments.
    Donc : rien à voir quant au fonctionnement.

    On trouvera .is() dans une condition :
    (par ex.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( $('....').is(':checked') ){ // checkbox cochée ?
    Dernière modification par Invité ; 28/06/2019 à 10h23.

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    Bonjour,
    pourquoi ne pas utiliser directement un sélecteur CSS3 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(".container :not('#Toto2')").hide();

  6. #6
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    NoSmo
    ou le selecteur ":not()"
    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 !

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut

    diantre, diable, diarrhée (*), j'ai la vue qui baisse !

    (*) cherchez l'intrus.

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

Discussions similaires

  1. 2 fois :not dans un sélecteur
    Par moimp dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 22/07/2017, 21h37
  2. [Turbo C++] Fonciton containing for are not expanded inline
    Par BuG dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 17/02/2003, 06h48
  3. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07
  4. Component not found
    Par Pm dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 14h40
  5. "ALTERER" une col. NULL en NOT NULL - Int
    Par Gandalf24 dans le forum SQL
    Réponses: 2
    Dernier message: 28/12/2002, 00h07

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