2014-11-10 3 views
1

Ektron CMS에서 자동 생성 한 내용이있는 DIV가 있습니다. 소스의내용이없는 경우 DIV를 숨기는 방법

스크린 샷 :

enter image description here

출력 :

enter image description here

DIV에 클래스 justPad 한 번 이상 나타나지 않는 경우 각각의 부모 DIV ({letter}Serv가) 비어 있습니다. 따라서 스크린 샷을 기반으로하면 A와 C에는 콘텐츠가 있지만 B와 D에는 콘텐츠가 없습니다.

{letter}Serv DIV 안에 콘텐츠가 없으면 어떻게 숨길 수 있습니까?

은 내가 적용 할 수있는 다음과 같은 클래스가 :

.hideDiv { 
    display: none; 
} 

샘플 코드 :

<div id="nServ" class="serviceHolder hidOverflow percPadBottom letterCode"> 
    <h2 class="defaultBlue percPadBottom">N</h2> 
     <span id="ctl00_BodyPlaceHolder_Collection15"> 
     <a href="#ViewEditorsMenu" data-ektron-editorsmenu-id="EktronEditorsMenu3c275505-4a2c-4384-bf36-081bc3e69279" onclick="return false;" class="EktronEditorsMenuMarker"><img src="/WorkArea/images/application/pin_grey.gif" alt="Editor's Menu" title="Editor's Menu" /></a> 
     <ul id="EktronEditorsMenu3c275505-4a2c-4384-bf36-081bc3e69279" class="EktronEditorsMenu" style="display:none;"> 
      {CONTENTS} 
     </ul> 
     <div class="justPad"><a class="defaultLinks" href="link">Nephrology</a></div> 
     <div class="justPad"><a class="defaultLinks" href="link">Neurology</a></div> 
     <div class="justPad"><a class="defaultLinks" href="link">Nutrition</a></div> 
    </span> 
</div> 

<div id="bServ" class="serviceHolder hidOverflow percPadBottom letterCode"> 
    <h2 class="defaultBlue percPadBottom">B</h2> 
     <span id="ctl00_BodyPlaceHolder_Collection15"> 
     <a href="#ViewEditorsMenu" data-ektron-editorsmenu-id="EktronEditorsMenu3c275505-4a2c-4384-bf36-081bc3e69279" onclick="return false;" class="EktronEditorsMenuMarker"><img src="/WorkArea/images/application/pin_grey.gif" alt="Editor's Menu" title="Editor's Menu" /></a> 
     <ul id="EktronEditorsMenu3c275505-4a2c-4384-bf36-081bc3e69279" class="EktronEditorsMenu" style="display:none;"> 
      {CONTENTS} 
     </ul> 
    </span> 
</div> 
+0

'div의 시도 : 빈 {표시 : 없음} 사업부는 제외 일하는 것이 –

+1

비어있는 경우'확인할 수 없다 DIV 안에는 다른 내용이 있습니다. 'justPad' DIV가 적어도 한 번 존재하지 않는다면 나는 그것을 숨기고 싶을뿐입니다. – Si8

+3

그의 div isnt 실제로 비어 있기 때문에이 doesnt 일을 짐작한다 – Rouby

답변

3

이렇게하면 모든 빈 Div를 찾아 숨길 수 있습니다.

$('div.serviceHolder:not(:has(div.justPad))').hide() 
+0

작고 단순하고 작동합니다 :) – Si8

+0

고맙습니다. 그 말이 올바른 대답으로 받아 들여질 것입니까? – Shriike

+0

네,하지만 아직 할 수 없습니다 :/고맙습니다! – Si8

1

각 사업부를 통해 반복하고, 어린이 길이 보이는 경우는 null .hide() 사업부 :

$('.hidOverflow').each(function() { 
    var $this = $(this), 
     $items = $this.children('.justPad'), 
     itemAmount = $items.length; 

    if(itemAmount <= 0) { 
     $this.hide(); 
     // or if you want to use your CSS-class 
     $this.addClass('hideDiv'); 
    } 
}); 

편집 : .hide() 기능 대신 CSS 클래스를 사용하는 버전이 추가되었습니다.

+0

아마 모든 것을 반복하고 싶습니다. serviceHolder – Rouby

+0

코드를 가져 주셔서 감사합니다. 나는 지금 그것을 테스트하고있다 :) – Si8

+0

그래, 아마도. 가장 좋은 경우는 "js-hide-if-empty"또는 해당 행을 따라 특정 루프를 루프하는 것입니다. – ninja

1

는 .... 다음

$(document).ready(function(){ 
$("div[id$=Serv]").each(function(){ 
     if($(this).is(':empty')){ 
      $(this).hide(); 
     } 
     else{ 
      $(this).show(); 
     } 
}); 
}); 

는 희망이 도움이

+0

코드를 보내 주셔서 감사 드리며 작동하지만 간단하고 단 한 줄로 작동하므로 @ Shrikke의 솔루션을 사용했습니다. 관심이있을만한 사람들에게도 도움이되었습니다. 나는 너의 대답에 투표했다. – Si8