2017-03-29 64 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對象或元素過濾。

相關問題