我希望在只有类名的容器div中隐藏一个深层嵌套的div(带有类或ID名称)。容器div由应用程序生成,因此我无法在其上设置ID。我不确切知道div生成了多少级别,所以我不能使用路径 - 因为该路径有时会根据生成的页面而改变。 几乎我需要使用循环或其他东西。
这就是我所拥有的
<div class ="container">
<div class ="level1">
<div class = "level2">
<other nested divs and html here...>
<div class = "levelN" id="idLevelN">
content to hide
<more divs and html here..../>
</div>
</other nested divs and html here...>
</div>
</div>
</div>
我想用class =“levelN”id =“idLevelN”隐藏div。
我尝试了各种各样的事情,但我放弃了。我试图使用find(),filter()等...帮忙?感谢
答案 0 :(得分:0)
我想要隐藏一个深层嵌套的div(带有类或ID名称) 在只有类名的容器div中。我不确切知道如何 生成div的许多级别
假设你有这个:
<div id="SearchHere">
<div>
<div>
<div></div>
</div>
</div>
<div></div>
<div>
<div>
<div>
<div >aaaaa</div> /* you want this*/
</div>
</div>
</div>
<div>
<div></div>
</div>
</div>
然后你可以this:
jQuery.fn.deepestDiv = function()
{
var $target = this.children(),
$next = $target;
while ($next.length)
{
$target = $next;
$next = $next.children();
}
return $target;
}
现在:
$("#SearchHere").deepestDiv().css('color','red')
答案 1 :(得分:0)
您应该只能通过ID访问此ID,因为ID对于页面来说是唯一的。
$('#idLevelN').hide()
但是,我意识到在实践中情况并非总是如此,因此您可能需要使用该类。
$('div.container div.levelN').hide()
答案 2 :(得分:0)
您可以使用.children()
选择器过滤所选元素的子元素。
您还可以使用.parents()
检查div
类container
类是否有效(是父母)。
像:
if ($( '#idLevelN' ).parents('.container').length){
$( '#idLevelN').children().hide();
}
这是Fiddle