簡體   English   中英

Jquery:隱藏所有子項,然后顯示特定元素

[英]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();
}

http://jsfiddle.net/peduarte/m2pj8/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM