隐藏所有的子元素,以及它们的子元素等等.标签的

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

本文关键字:元素 标签 隐藏所      更新时间:2023-09-26

我正在用DOM (javascript + jquery)制作一款游戏,我需要切换阶段,因此我需要隐藏一个阶段的所有内容,并在新阶段显示所有内容。展示的部分很简单,因为我在创造新的东西。但我想用一种干净的方式找到一个div的每一个孩子,他所有的后代,堂兄,侄女,我不在乎,然后把他们藏起来。在代码中显示如下:

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

而不是像这样:

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

目标是隐藏他的孩子,和他孩子的孩子,等等。我希望我没有把你们弄糊涂。提前感谢你的回答!

编辑:对于那些不想隐藏孩子,但访问他们所有的人,你不能使用。find("*")那么第二个答案可能更适合你(来自Rajan Goswami的那个)。

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

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

或使用.find()

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

当然你可以使用任何函数,不仅仅是.hide()

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

"myParentControl"是最亲控件的ID。

$(document).ready(function(){
   HideChildren($(#myParentControl))
})
function HideChildren(cntrl){
    if ( $(cntrl).children().length > 0 ) {
         $(cntrl).children().each(function(){
           HideChildren(this);
           $(this).hide();
         })
    }
}
相关文章: