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();
})
}
}
我正在 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();
})
}
}