javascript - ocultar - removeattr disabled
Jquery: Ocultar todos los hijos, luego mostrar un elemento especĂfico (6)
Quiero ocultar todos los elementos secundarios en un div. Y luego muestre uno específico transferido a la función.
function subDisplay(name) {
$("#navSub").each(function() {
$(this).hide();
});
$(name).show();
}
luego invoco la función desde un evento onmouse como: subDisplay(#DivIwantToShow);
Pero nada se muestra ...
¿Qué estoy haciendo mal?
Necesita ocultar los niños y no el div que contiene.
$("#navSub").children().hide();
Entonces, si el div que estás tratando de mostrar es un elemento en el div principal, se seguirá mostrando mientras los demás permanezcan ocultos.
Para resumir los excelentes comentarios de @dotweb y @Matt;
function subDisplay(name) {
$(''#navSub'').hide();
$(name).show();
}
subDisplay(''#DivIwantToShow'');
Si se dirige a los hijos de #navSub
, debe orientarlos y ocultarlos, en lugar del elemento navSub
; que puedes hacer usando el método children()
;
function subDisplay(name) {
$(''#navSub'').children().hide();
$(name).show();
};
De lo contrario, parece que tienes varios elementos con la misma ID en tu DOM, lo cual no está permitido.
Luego debe pasar una cadena (que es un selector jQuery válido) a subDisplay()
;
subDisplay(''#DivIwantToShow'');
Trata de tenerlo fuera del circuito, así:
function subDisplay(name) {
$("#navSub").hide();
$(name).show();
}
si el nombre del elemento se pasa en nombre use esto:
if($(this).attr(''name'') != name){
//Hide it
} else {
//show it
}
function subDisplay(name) {
$("#navSub").hide();
$(''#''+name).show();
}