2013-07-19 1 views
1

Я пытаюсь подсчитать количество элементов li с атрибутом css «display: block», и я не могу понять это правильно.
Я использовал этот замечательный вопрос и ответы: jquery count elements with attributeПодсчитайте количество элементов li с определенным css

И он работает, но не с ли по какой-то причине.
Вот мой код:

$(function() { 
    alert($("li[display='block']").length); 
}); 

А вот скрипка: http://jsfiddle.net/dQTgg/

Заранее спасибо!

ответ

4

Попробуйте это:

$(function() { 
    alert($("li[style='display:block']").length); 
}); 

Fiddle

Если есть какие-то дополнительные правила CSS затем использовать это:

$(function() { 
    var el = $('li').filter(function() { 
    return $(this).css('display') == 'block'; 
    }); 
    alert(el.length); 
}); 

Fiddle

+0

Ничего себе! Это просто ... Спасибо! –

+0

Это вернет неправильное значение, если на элементах 'li' есть дополнительные правила css. Посмотрите [здесь] (http://jsfiddle.net/dQTgg/3/) – anu

0

DEMO HERE

$(function() { 
    var count=0; 
    $("li").each(function(){ 
     if($(this).css('display') == 'block'){ 
      count++; 
     } 
    }); 
    alert(count); 
}); 
3

Более правильный способ проверить li с с дисплеем = «блок» будет

$('li').filter(function(){ 
    return $(this).css('display') == 'block' 
}).length 

, но если вы хотите посчитать видимые li сек, то можете использовать опцию :visible селектор

$('li:visible').length 
0

Попробуйте это

$(function() { 
    alert($("li:visible").length); 
}); 

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

  • Нет связанных вопросов^_^