我在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的那个)。
答案 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();
})
}
}