Ottenere un object JQuery vuoto

Nel codice seguente ho impostato un gestore delle modifiche su una casella di selezione per mostrare e hide alcune domande di follow-up in base al valore della selezione.

Inoltre, per alcuni valori della selezione c’è un messaggio in più che viene visualizzato.

Per verificare se ho bisogno di hide il messaggio in più, tengo una variabile chiamata Previous. Dopo l’esecuzione del gestore, controllo se Previous è nullo o se la dimensione è 0.

Sarebbe bello inizializzare Previous a un object JQuery vuoto in modo da non dover fare il controllo extra per null.

Fare $ () restituisce un object con la dimensione di 1.

C’è un modo per creare un object Jquery vuoto?

 // Funzione Init.
 $ (Function () {
 // Tieni l'object selezionato in precedenza per la selezione del tipo di account.

 var Precedente = null;  // Qui è dove vorrei inizializzarmi.
                       // qualcosa come Precedente = $ ();


 $ ( "SELECT [name = 'AccountType']"). Cambia (
     funzione () {
         // Nascondi il messaggio precedente se ce n'era uno.
         if (Precedente == null || Previous.size ()> 0) { 
             Previous.hide ();
         }

         // Mostra il messaggio se trovato e lo salva come precedente.
         Precedente = $ ("#" + this.value + "_ Msg"). Show ();

         // Prendi la prima domanda
         var FirstQuestion = $ (". FirstQuestion");
         if (this.value === '') {
             FirstQuestion.hide ();
         }altro{
             // Mostra manualmente FirstQuestion.
             FirstQuestion.show ();
         }
     });
 }

Nel peggiore dei casi potrei fare qualcosa del genere:

     var Precedente = {size: function () {return 0;  }};

ma sembra eccessivo.

Questo crea un object jQuery vuoto:

$([]) 

Aggiornamento: nelle versioni più recenti di jQuery (1.4+), puoi usare:

 $() 
 $(); 

Restituzione di un set vuoto

A partire da jQuery 1.4, chiamare il metodo jQuery() senza argomenti restituisce un set jQuery vuoto (con una proprietà .length di 0). Nelle versioni precedenti di jQuery, ciò restituiva un set contenente il nodo del documento.

Fonte: api.jquery.com

Il mio consiglio è di non farlo in quel modo. Ci sono modi molto più semplici per farlo. Prendere in considerazione:

  
...
...
...
$(function() { $("#select").change(function() { var val = $(this).val(); $("div." + val").show(); $("div:not(." + val + ")").hide(); }); });

Molto più facile Fondamentalmente dare lezioni per indicare cosa mostrare e hide e quindi non è richiesto alcun monitoraggio. Un’alternativa è:

 $(function() { $("#select").change(function() { var val = $(this).val(); $("div").each(function() { if ($(this).hasClass(val)) { $(this).show(); } else { $(this).hide(); } }); }); });