2012-04-13 16 views
10

So finden Sie HTML-Element (-s) mit z-index = 10 zum Beispiel?Suchen Element mit angegebenen Z-Index

+0

möglich Duplikat [jQuery: Können Sie von CSS-Regel wählen, nicht Klasse?] (Http://stackoverflow.com/questions/43926/jquery-can-you- select-by-css-rule-not-class) –

+0

auch: [jQuery find by inline CSS-Attribut] (http://stackoverflow.com/questions/1180067/jquery-find-by-inline-css-attribute) – aruseni

+1

Don t. Wenn Sie diesen Ansatz verwenden, tun Sie wahrscheinlich etwas falsch. Verwenden Sie stattdessen IDs oder Klassen. – Blazemonger

Antwort

17

Sie haben alle Elemente iterieren und überprüfen ihre z-index:

$('*').filter(function() { 
    return $(this).css('z-index') == 10; 
}).each(function() { 
    // do something with them 
}); 
1

Eine mögliche [jQuery] Lösung:

$(".elementsToSearch").each(function() 
{ 
    if($(this).css('z-index') == 10) 
    { 
     //then it's a match 
    } 
}); 

Schleifen nur durch Elemente für eine Anpassung an die CSS-Suche Regel.

1

Sie können alle Elemente erhalten und filtern sie durch CSS-Eigenschaft:

$('*').each(function(){ 
    if($(this).css('z-index') == 10) { 
     //$(this) - is element what you need 
    } 
}); 
0

In meinen Tests in Chrome 43, ich @ThiefMaster's post hilfreich erwiesen, aber nicht 100%. Der Wert des z-index, der gezogen wurde, war eine Zeichenkette.

Ich machte auch dies nur über sichtbare Elemente iterieren und behandeln auto.

Hier ist mein Update:

var topZ = $('.thing-in-front').css('z-index') 
if (topZ != 'auto') { 
    topZ = parseInt(topZ); 
    $('*:visible').filter(function() { 
     var thisZ = $(this).css('z-index') 
     return thisZ != 'auto' && parseInt(thisZ) >= topZ; 
    }).each(function() { 
     $(this).css('z-index', topZ - 1); 
    }) 
} 
Verwandte Themen