2010-04-21 6 views
15

$(). fadeOut()을 사용하여 목록에서 항목을 페이드 아웃합니다 (< li> </li>). 목록이 비어 있으면 부모 개체를 숨기려고합니다.JQuery - 선택기에서 선택한 요소의 수를 어떻게 계산합니까?

개체 수를 0으로 설정하고 부모 요소를 숨기면 목록을 사라지게하는 트리거 이벤트를 확인하여이 작업을 수행 할 계획입니다. 필요한 경우 fadeOut 콜백을 사용하여 요소를 제거 할 수 있습니다.

요점 질문 : ul 내부에서 li 태그를 선택하고 jquery를 사용하여 총 태그 수를 얻으려면 어떻게해야합니까?

$('ul > li').length 

ul가 비어 있지 않은 경우가

$('ul:empty').fadeOut(); 

를 작성하는 것이 할 수있는 더 우아한 방법으로, 셀렉터, 아무것도 일치하지 않습니다과 : 이것처럼

답변

27

코드는 아무 것도하지 않습니다.

당신은

$('.SomeContainer:has(ul:empty)').fadeOut(); 
+2

1 : 빈 – meo

+1

당신이 감사는 훨씬 더 우아한. –

5

간단히 jQuery를 수집에 대해 .length를 사용하여 작성해야 할 수도 있습니다.

var $elements = $('ul#myUlElement').children('li'); 
alert($elements.length) 
+0

'$ ('ul # myUlElement> li')'대신'$ ('ul # myUlElement'). children ('li')'을 사용할 이유가 있습니까? –

11

$('ul li').length // gives you back all li's in your ul 
$('ul > li').length // give just the first children li's 

그래서 당신은이 방법을 사용할 수 있습니다 부모님을 숨기하기 위해 .length 사용 : 대한

elements = $('ul > li') 

if (elements.length) { 
    elements.fadeOut() 
}else{ 
    elements.parent().fadeOut() 
} 
관련 문제