Ich habe einen Schieberegler, bei dem einige der Bilder im Schieberegler optional eine Fotovorlage mit Text oder Link enthalten können ein Popper. Ich würde gerne über alle Popper-Instanzen iterieren und wenn alle p-Tags in der .photo-credit p-Klasse leer sind, dann verstecke nur diese Instanz des Eltern-Popper. Ich habe versucht, eine Lösung aus anderen Posts zusammenzusetzen, aber ich konnte es nicht zum Laufen bringen. Der Code, den ich habe, verbirgt keinen Popper, wenn alle p Tags für diesen Popper leer sind. Ich bin ein JavaScript-Neuling und würde mich über jede Hilfe freuen.Ausblenden der übergeordneten div-Klasse, wenn die untergeordnete div-Klasse keinen Inhalt hat, wenn mehrere übergeordnete divs denselben Klassennamen haben
HTML
<div class="slider-wrapper">
<!--Required Root Element-->
<div class="slider">
<!--Required List Element-->
<div class="slider-list">
<div class="slider-item">
<div class="slider-image-container"><img class="slider-image" src="http://www.someurl.com/Images/Homepage Images/Slider/image1.jpg" /></div>
<div class="slider-content-container">
<h1>B LIne: The Place to Be</h1>
<div class="learn-more"><a href="http://www.someurl.com">Learn More</a></div>
</div>
<div class="popper">
<img data-toggle="popover" class="photo-credit-icon" src="http://www.someurl.com/icon-photography.svg" alt="photo credit" />
</div>
<div class="photo-credit hide">
<p><p><a href="http://www.someurl.com">A photo credit</a>.</p></p>
<p></p>
</div>
</div><div class="slider-item">
<div class="slider-image-container"><img class="slider-image" src="http://www.someurl.com/Images/Homepage Images/Slider/anotherimage.jpg" /></div>
<div class="slider-content-container">
<h1>July 4th: You missed it!</h1>
<div class="learn-more"><a href="http://www.someurl.com">Learn More</a></div>
</div>
<div class="popper">
<img data-toggle="popover" class="photo-credit-icon" src="http://www.someurl.com/icon-photography.svg" alt="photo credit" />
</div>
<div class="photo-credit hide">
<p></p>
<p></p>
</div>
</div><div class="slider-item">
<div class="slider-image-container"><img class="slider-image" src="http://www.someurl.com/Images/Homepage Images/Slider/anotherimage.jpg" /></div>
<div class="slider-content-container">
<h1>Festival coming Aug. 31st!</h1>
<div class="learn-more"><a href="http://www.someurl.com">Learn More</a></div>
</div>
<div class="popper">
<img data-toggle="popover" class="photo-credit-icon" src="http://www.someurl.com/icon-photography.svg" alt="photo credit" />
</div>
<div class="photo-credit hide">
<p></p>
<p></p>
</div>
</div>
</div>
</div>
<a href="#" class="slider-control-prev"><img src="http://www.someurl.com/images/icons/icon-chevron-left-slider.svg"></a>
<a href="#" class="slider-control-next"><img src="http://www.someurl.com/images/icons/icon-chevron-right-slider.svg"></a>
<p class="slider-pagination"></p>
</div>
JavaScript
$('.popper').each(function() {
//var $thisPopper = $(this);
var hasContent = 0;
$('.photo-credit p').each(function() {
if($(this).html().length > 0) {
hasContent++;
}
});
if(hasContent > 0){
//$thisPopper.hide();
$(this).hide();
}
});
Arbeitete perfekt. Vielen Dank! – lorigar