texto - Obteniendo un objeto JQuery vacío
obtener texto de un span jquery (3)
Esto crea un objeto jQuery vacío:
$([])
Actualización: en versiones más recientes de jQuery (1.4+), puede usar:
$()
En el siguiente código configuré un controlador 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.
Además, para algunos valores de la selección, se muestra un mensaje adicional.
Para verificar si necesito ocultar el mensaje extra, 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.
Hacer un $ () devuelve un objeto con el tamaño de 1.
¿Hay alguna 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 eso parece exagerado.
Mi consejo es que no lo hagas de esa manera. Hay formas mucho más sencillas de hacer esto. Considerar:
<select id="select" name="select">
<option value="msg_1">Message 1</option>
<option value="msg_2">Message 1</option>
<option value="msg_3">Message 1</option>
</select>
<div class="msg_1 msg_3">
...
</div>
<div class="msg_1">
...
</div>
<div class="msg_2">
...
</div>
$(function() {
$("#select").change(function() {
var val = $(this).val();
$("div." + val").show();
$("div:not(." + val + ")").hide();
});
});
Mucho más fácil. Básicamente, da clases para indicar qué mostrar y ocultar y luego no se requiere seguimiento. Una alternativa es:
$(function() {
$("#select").change(function() {
var val = $(this).val();
$("div").each(function() {
if ($(this).hasClass(val)) {
$(this).show();
} else {
$(this).hide();
}
});
});
});
$();
Devolución de un conjunto vacío
A partir de jQuery 1.4, llamar al método
jQuery()
sin argumentos devuelve un conjunto jQuery vacío (con una propiedad.length
de 0). En versiones anteriores de jQuery, esto devolvería un conjunto que contiene el nodo del documento.
Fuente: api.jquery.com