Dans le code suivant, j'ai configuré un gestionnaire de changement dans une zone de sélection pour afficher et masquer certaines questions de suivi en fonction de la valeur de la sélection.Obtention d'un objet JQuery vide
En outre, pour certaines valeurs de la sélection, un message supplémentaire s'affiche.
Afin de vérifier si j'ai besoin de cacher le message supplémentaire, je garde une variable appelée Précédent. À l'exécution du gestionnaire, je vérifie si Previous est nul ou si la taille est 0.
Il serait bien d'initialiser Previous à un objet JQuery vide afin de ne pas avoir à faire la vérification supplémentaire pour null.
Faire un $() retourne un objet avec la taille de 1.
Est-il possible de créer un objet Jquery vide?
//Init function. $(function(){ //Hold the previously selected object for the account type selection. var Previous = null; //Here is where I would like to initialize. //something like Previous = $(); $("SELECT[name='AccountType']").change( function() { //Hide Previous message if there was one. if(Previous == null || Previous.size() > 0){ Previous.hide(); } //Show the message if found and save it as previous. Previous = $("#"+this.value+"_Msg").show(); //Get fisrt question var FirstQuestion = $(".FirstQuestion"); if(this.value === ''){ FirstQuestion.hide(); }else{ //Manually show FirstQuestion. FirstQuestion.show(); } }); }
Dans le pire des cas que je pouvais faire quelque chose comme ceci:
var Previous = { size : function() { return 0; } };
mais qui semble exagéré.
1 belle réponse, je ne aurais jamais pensé que :) –
Je ne vois pas comment cela est différent de '$()'. Quelqu'un peut-il jeter une lumière? – cregox
À partir de jQuery 1.4, ce n'est pas le cas. Une question a été posée avant cela. – Magnar