2016-09-13 2 views
-1

Мне нужно проверить (с jQuery), если все 'li' в списке имеют стиль = "display: none", , но я немного потерял ,Проверьте, являются ли все элементы массива одинаковыми с 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

Возможная дубликат [Проверить, равны ли все значения массива] (http: // stackoverflow.com/questions/14832603/check-if-all-values-of-array-are-equal) – R3tep

+1

Просто проверьте количество видимого элемента '$ ('. thumbs li: visible'). length == 0' –

+0

@PranavCBalan В моей голове так много вещей, которые не помнят очевидного ... ха-ха. Спасибо! –

ответ

0

Вместо использования map, попробуйте filter ИНГ элементы списка на основе их свойств CSS и проверки длины результирующего массива:

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>

Смежные вопросы