2010-03-04 8 views
2

jQuery를 사용하여 테이블 본문 (tbody)이 비어 있는지 확인하고 싶습니다. 지금까지 나는 다음과 같은 것을 시도했다 :.append를 사용한 후 요소가 비어 있는지 확인하십시오.

$("#searchTable tbody").is(":empty") 

그러나 작동하지 않는다. 다른 아이디어?

HTML 샘플

<table id="searchTable" cellpadding="0" cellspacing="0" width="100%"> 
    <thead> 
     <tr> 
      <th>No.</th> 
      <th><a href="#">Status</a></th> 
      <th><a href="#" class="asc">Category</a></th> 
      <th><a href="#" class="desc">Title</a></th> 
      <th><a href="#" class="desc">Last Used</a></th> 
      <th><a href="#" class="desc">URL</a></th> 
      <th style="width: 96px;">Actions</th> 
     </tr> 
    </thead> 
    <tbody></tbody> 
</table> 

그래서 뭔가 TBODY에 추가되었는지 확인하려면; 그렇지 않다면 경고하십시오.

+0

어떤 방식으로 작동하지 않습니까? HTML 샘플을 볼 수 있을까요? – Matchu

답변

8

당신은 TBODY가 비어있는 경우 0이됩니다

$('#searchTable tbody').children().length; 

같은 것을 시도해 볼 수도 있습니다 (아이를 가지지 않는다).

+0

바로 그게'.is (": empty")'무엇입니까? 아니면 텍스트 노드가 자식으로 간주되지 않습니까? OP의 에러는': empty' 셀렉터가 제대로 작동하지 않는 것보다 유동적 일 가능성이 더 큽니다. – Matchu

+0

작동하지 않습니다 ... – user253530

+1

그냥 시도해보십시오. 그리고 .children(). length는 텍스트 노드를 계산하지 않습니다. .append ('text')하면 .children(). 길이가 0이되고, (' 텍스트')을 추가하면 children(). 길이가 1을줍니다. 두 경우 모두 .is (': empty')는 false를 반환합니다. 그것은 나를 위해 일했습니다. 정확히 어떻게 작동하지 않습니까? "일하지 않는다 ..."정확히 도움이되지 않습니다. – Bob

1

요소가 없으면 false도 반환합니다. 요소가 있는지 확인하고 선택기를 사용하여 선택할 수 있습니다.

관련 문제