2009-10-23 10 views
12

Wie wähle ich ein Element basierend auf seiner CSS?jquery wählen alle br mit display: none;

Ich muss eine br mit Inline-Stil-Anzeige auswählen: keine. Das ist nicht dasselbe wie br: versteckt, weil das Elemente auswählt, die auf andere Weise versteckt sind, und das will ich nicht.

Danke.

+0

Wäre es nicht 'br: hidden' genug sein? http://api.jquery.com/hidden-selector/ – Stefan

Antwort

32

Sie könnten versuchen:

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

filter verwenden.

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

Nicht sicher, warum dies Upvoted wird, da es nicht funktioniert! Es muss das CSS-Attribut sein und kein Attribut für das HTML-Element. –

+0

Es sollte 'css()' anstelle von 'attr()' sein. 'Anzeige' ist CSS nicht HTML-Attribut – mauris

0

Verwendung jQuery.map:

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

Eigentlich Filter ist wahrscheinlich besser. –

0

Wie wäre es etwa so:

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

Arbeiten wie ein Charme.

11

Ein anderer Weg, dies zu tun wäre, um jQuery Attributselektor zu verwenden:

$("br[style$='display: none;']") 
Verwandte Themen