2017-03-29 38 views
0

我有一个场景,我必须通过所有子元素,并检查是否有特定的类可用或不可用。如果可用,则隐藏该特定元素。这是我的html代码:如何通过所有子元素找到特定的类,如果可用则隐藏该子元素?

<div id="toolbar"> 
    <ul class="nav navbar-nav"> 
     <li class="topnav"></li> 
     <li class="topnav"></li> 
     <li class="topnav"></li>   
     <li class="topnav all"></li> 
    </ul> 
</div> 

现在,我可以检查是否有子元素具有类all与否,使用此代码:

$('#toolbar ul').find('li').hasClass('all') 

而且我越来越true。现在,我想隐藏那个具有all类的特定元素。我试过这个代码:

if($('#toolbar ul').find('li').hasClass('all')) $(this).hide(); 

但是,没有得到成功。所以,请在这里指导我如何做到这一点。谢谢。

+1

为什么不只是'.find(“。all”)。hide()'? – Red

+1

'$(this)'没有任何理由指向这个特定的元素(除非有更多的上下文,这是你忽略告诉我们的。)只需在你用来查找元素的选择器上调用隐藏。这甚至不需要通过if检查 - 只需选择元素并隐藏它们。如果选择中没有元素,则什么都不会发生。 – CBroe

+0

@RichardMauritz,谢谢。我不知道这种方法。有效。 –

回答

1

你很接近用下面的代码 $('#toolbar ul').find('li').hasClass('all')

只需更改一行到这个 $('#toolbar ul').find('.all').hide()

,将隐藏在里面ul所有后代与类名.all

.find():获取当前垫子中每个元素的后代ched元素,由选择器,jQuery对象或元素过滤。

相关问题