2016-09-13 2 views
-1

ich brauche (mit jQuery) zu überprüfen, ob all ‚li‘ in einer Liste Stil hat = „display: none“, aber ich bin ein wenig verloren .überprüfen Sie, ob alle Elemente in einem Array sind der gleiche Wert mit jQuery

<ul class="thumbs"> 
    <li style="display: none;">Element 1</li> 
    <li style="display: none;">Element 2</li> 
    <li style="display: none;">Element 3</li> 
    <li style="display: none;">Element 4</li> 
    <li style="display: none;">Element 5</li> 
</ul> 

var $el = $('.thumbs li'); 
var elStyle = $el.map(function() { 
    return $(this).attr('style'); 
}); 

console.log(elStyle); 

https://jsfiddle.net/r2rwe2nw/

+0

Mögliche Duplikat von [Überprüfen Sie, ob alle Array-Werte gleich sind] (http: // stackoverflow.com/questions/14832603/check-if-all-values-of-array-are-equal) – R3tep

+1

Überprüfen Sie einfach die Anzahl der sichtbaren Elemente '$ ('. thumb li: visible'). length == 0' –

+0

@PranavCBalan Es gibt so viele Dinge in meinem Kopf, die sich nicht an das Offensichtliche erinnern konnten ... haha. Vielen Dank! –

Antwort

0

Statt map zu verwenden, versuchen filter die Listenelemente ing auf der Grundlage ihrer CSS-Eigenschaften und die Überprüfung der Länge des resultierenden Array:

var visibleElements = $('.thumbs li').filter(function(item) { 
 
    return this.style.display !== 'none'; 
 
}); 
 

 
console.log(visibleElements.length > 0);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<ul class="thumbs"> 
 
    <li style="display: none;">Element 1</li> 
 
    <li style="display: none;">Element 2</li> 
 
    <li style="display: none;">Element 3</li> 
 
    <li style="display: none;">Element 4</li> 
 
    <li style="display: none;">Element 5</li> 
 
</ul>

Verwandte Themen