Jquery:隐藏所有子项,然后显示特定元素

Chr*_*ker 35 javascript jquery show hide

我想隐藏div中的所有子元素.然后显示传递给函数的特定一个.

function subDisplay(name) {
   $("#navSub").each(function() {
      $(this).hide();
   });
   $(name).show();
}
Run Code Online (Sandbox Code Playgroud)

然后我从onmouse事件调用该函数,如:subDisplay(#DivIwantToShow); 但没有任何显示...

我究竟做错了什么?

Bra*_*red 78

你需要隐藏孩子而不是隐藏的div.

$("#navSub").children().hide();

所以现在如果你想要显示的div是父div中的一个元素,它仍将显示而其他div保持隐藏状态.


Mat*_*att 5

如果你的目标是 的孩子#navSub,你需要定位他们并隐藏他们,而不是元素navSub;您可以使用该children()方法进行操作;

function subDisplay(name) {
    $('#navSub').children().hide();
    $(name).show();
};
Run Code Online (Sandbox Code Playgroud)

否则,您的 DOM 中似乎有多个具有相同 ID 的元素,这是不允许的。

然后,您需要将一个字符串(这是一个有效的 jQuery 选择器)传递给subDisplay();

subDisplay('#DivIwantToShow');
Run Code Online (Sandbox Code Playgroud)