2017-05-09 4 views
2

Ich versuche etwas zu tun, das so einfach scheint. Ich habe ein DIV, das eine Überschrift und ein Geschwister DIV ist, das Inhalt hat. Wenn die Höhe des Inhalts DIV gleich 0 ist, möchte ich die Überschrift DIV ausblenden, die das vorherige Geschwister ist. Unten ist mein Skript und GeigeHide Previous Div wenn Höhe = 0

$(function() { 
    if ($('div.grid').height() < 1) { 
     $(this).prev('.titletohide').css('display', 'none');    
    } 
}); 

https://jsfiddle.net/mj5t4x9g/

Antwort

2

ein paar Probleme mit Ihrem Code Es gibt keine. Der erste ist, dass $('div.grid') mehr als ein Element entspricht. Und $(this) bezieht sich nicht auf das, was Sie denken, dass es tut. Versuchen Sie folgendes:

$('div.grid').each(function() { 
 
    if ($(this).height() < 1) { 
 
    $(this).prev('.titletohide').css('display', 'none'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="titletohide"> 
 
    Heading 1 
 
</div> 
 
<div class="grid" style="height:0px;"><span style="display:none">text text</span></div> 
 

 
<div class="titletohide"> 
 
    Heading 2 
 
</div> 
 
<div class="grid"> 
 
    more more 
 
</div>

+0

großen Werke, danke – runningantelope123