Jquery:隐藏标签的所有孩子,他们的孩子等等

时间:2015-07-27 09:43:24

标签: javascript jquery children

我在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的那个)。

2 个答案:

答案 0 :(得分:2)

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

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

或使用.find()

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

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

答案 1 :(得分:1)

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

  

" myParentControl"是最父控制的ID。

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

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