[英]Jquery: Hide all children, then show a specific element
我想隱藏div中的所有子元素。 然后顯示傳遞給函數的特定一個。
function subDisplay(name) {
$("#navSub").each(function() {
$(this).hide();
});
$(name).show();
}
然后我從一個onmouse事件中調用該函數,如: subDisplay(#DivIwantToShow);
但沒有任何顯示......
我究竟做錯了什么?
你需要隱藏孩子而不是隱藏的div。
$("#navSub").children().hide();
所以現在如果你想要顯示的div是父div中的一個元素,它仍將顯示而其他div保持隱藏狀態。
如果你的目標是#navSub
的孩子,你需要定位它們並隱藏它們 ,而不是元素navSub
; 你可以用children()
方法做什么;
function subDisplay(name) {
$('#navSub').children().hide();
$(name).show();
};
否則,您的DOM中有多個具有相同ID的元素,這是不允許的。
然后,您需要將一個字符串(這是一個有效的jQuery選擇器)傳遞給subDisplay()
;
subDisplay('#DivIwantToShow');
總結@dotweb和@Matt的好評;
function subDisplay(name) {
$('#navSub').hide();
$(name).show();
}
subDisplay('#DivIwantToShow');
如果在名稱中傳遞元素的名稱,請使用以下命令:
if($(this).attr('name') != name){
//Hide it
} else {
//show it
}
function subDisplay(name) {
$("#navSub").hide();
$('#'+name).show();
}
嘗試在循環之外使用它,如下所示:
function subDisplay(name) {
$("#navSub").hide();
$(name).show();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.