Jquery : 隐藏标签的所有 children 和它们的 children 等等...

Jquery : Hide all children, and their children and etc... of a tag

我正在 DOM (javascript + jquery) 制作游戏,我需要切换阶段,为此我需要从一个阶段隐藏所有内容,然后显示都是新的。展示部分很简单,因为我正在创造新的东西。但我想要一个干净的方法来找到 div 的每个最后一个 child,他所有的后代,堂兄,侄女,我不在乎,并将它们隐藏起来。在代码中显示类似:

while (child = $(this).hasChildren)
{
  child.hide();
}

而不是那样的东西:

$(this.id).children().children().children().hide();
$(this.id).children().children().hide();
$(this.id).children().hide()
$(this.id).hide();

目标是隐藏他的children,他的children的children,等等。 我希望我不会太混乱。 预先感谢您的回答!

编辑:对于那些不想隐藏 children 的人,但要访问它们,并且您不能使用 .find("*") 那么第二个答案可能更适合给你(来自 Rajan Goswami 的那个)。

如果您想对一个元素的所有子元素执行某些操作,您可以使用以下语法:

$('#myDiv *').hide();

或使用.find()

$('#myDiv').find('*').hide();

当然你可以使用任何功能,而不仅仅是.hide()

您可以尝试以下解决方案:

"myParentControl" is the ID of the parent-most control.

$(document).ready(function(){
   HideChildren($(#myParentControl))
})

function HideChildren(cntrl){
    if ( $(cntrl).children().length > 0 ) {
         $(cntrl).children().each(function(){
           HideChildren(this);
           $(this).hide();
         })
    }
}