2009-10-23 1 views
12

Как выбрать элемент на основе его css?jquery выбрать все br с дисплеем: нет;

Мне нужно выбрать br с встроенным дисплеем стиля: нет. Это не то же самое, что и br: hidden, потому что выбирает элементы, которые скрыты другими способами, и я не хочу этого.

Спасибо.

+0

бы 'ш: не hidden' быть достаточно? http://api.jquery.com/hidden-selector/ – Stefan

ответ

32

Вы можете попробовать:

$("br").filter(function() { return $(this).css("display") == "none" }) 
5

Использование filter.

$("br").filter(function() { 
    return $(this).css("display") == "none"; 
}); 
+0

Не знаете, почему это происходит, потому что это не сработает! Это должен быть атрибут CSS, а не атрибут HTML-элемента. –

+0

Он должен быть 'css()' вместо 'attr()'. 'display' является атрибутом CSS не HTML – mauris

0

Использование jQuery.map:

var brs = $('br'); 
jQuery.map(brs, function(elem, i){ 
    if(elem.css('display') == 'none') 
     return elem; 
    return null; 
}); 
+0

На самом деле фильтр, вероятно, лучше. –

0

Как о чем-то вроде этого:

$(document).ready(function() { 
    $("div:hidden").each(function() { 
    if ($(this).css("display") == "none") { 
     // do something 
    } 
    }); 
}); 
0
$("br").filter(function() { 
    return $(this).css("display") == "none"; 
}) 

работает как шарм.

11

Другой способ сделать это было бы использовать селектор атрибута JQuery в:

$("br[style$='display: none;']") 
Смежные вопросы