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

    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 !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  3. #3
    Membre du Club
    Ah d'accord ^^

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

  4. #4
    Invité
    Invité(e)
    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 ?

  5. #5
    Modérateur

    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

    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 !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  7. #7
    Modérateur


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

    (*) cherchez l'intrus.