隐藏所有的子元素,以及它们的子元素等等.标签的
Jquery : Hide all children, and their children and etc... of a tag
我正在用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();
})
}
}