En el siguiente código configuro un manejador de cambios en un cuadro de selección para mostrar y ocultar algunas preguntas de seguimiento en función del valor de la selección.Obteniendo un objeto JQuery vacío
Además, para algunos valores de la selección hay un mensaje adicional que se muestra.
Para comprobar si necesito ocultar el mensaje adicional, conservo una variable llamada Anterior. Tras la ejecución del controlador, compruebo si Previous es nulo o si el tamaño es 0.
Sería bueno inicializar Anterior a un objeto JQuery vacío para no tener que hacer la comprobación adicional para null.
Haciendo un $() devuelve un objeto con el tamaño de 1.
¿Hay una manera de crear un objeto jQuery vacío?
//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(); } }); }
En el peor de los casos podría hacer algo como esto:
var Previous = { size : function() { return 0; } };
pero que parece un exceso.
1 respuesta preciosa, nunca lo hubiera pensado de ese :) –
No veo cómo esto es diferente de '$()'. ¿Alguien puede arrojar una luz? – cregox
A partir de jQuery 1.4, no lo es. La pregunta fue hecha antes de eso. – Magnar