2010-05-11 20 views
13

Örneğin kırmızı arka plan rengine sahip her div seçmek istiyorum. jquery'de bu mümkün mü? tvanfosson dediği gibi, doğru yolu her birine bir CSS sınıfı atamak olacaktırjquery element filter by css

$('div').filter(function() { 
    return this.element.style['background-color'] == 'red'; 
}); 

Ama:

<div style="background-color:red"></div> 
<div style="background-color:white"></div> 
<div style="background-color:red"></div> 
<div style="background-color:yellow"></div> 

Eğer

cevap

11
$('div[style=background-color:red]'); 
+9

Yalnızca – ThiefMaster

+3

@ThiefMaster etiketinde stil özelliği varsa, yukarıdaki örnek html'ye başvuruyu yanıtladım. – Gabe

+6

bununla ilgili yanlış bir şey yok, sadece bunu kullanan birinin bunu fark etmediğine değmez. Ayrıca, stil etiketi tam olarak arka plan rengi gibi biçimlendirmiyorsa: kırmızı bu, –

16

jQuery filtresi kullanabilirsiniz teşekkür senin divs, daha sonra jQuery kullanarak nesneleri (jQuery ile çalışmanın tercih edilen yolu) olarak arayabilirsin:

$('.yourCSSClass'); 
+0

Bu yalnızca çalışırsa çalışır arka plan rengi açıkça etiketin stil özniteliğinde bildirilir ... –

+0

this.style ['background-color'] == 'red'; – Tebe

1

Sana etiketteki belli style=xxx özniteliği güvenmek istemiyorsanız bunun için özel bir filtre gerektiğini düşünüyorum:

$('*').filter(function() { /* check the background color of this */ }); 
6

Neden zor yoldan mı? Daha iyi bir çözüm, elemanlarınıza stillerini vermek için CSS sınıflarını kullanmaktır, daha sonra sınıf tabanlı seçiciyi kullanabilirsiniz.

<style type="text/css"> 
    .alert { 
     background-color: red; 
    } 
</style> 

<div class="alert"></div> 


$('.alert').... 
2

Her şeyden önce, sayfa öğelerinde satır içi stilleri ayarlamanızı önermiyorum. CSS sınıfları atayın ve arka plan renklerinizi harici bir CSS belgesinde kontrol edin.

.red {background-color:red;} 
.white {background-color:white;} 
.yellow {background-color:yellow;} 

Sonra kullanarak kırmızı olanları seçmek için kolaylaştırır:

<div class="red"></div> 
<div class="white"></div> 
<div class="red"></div> 
<div class="yellow"></div> 

Ve CSS'nizde

Bu kod aynı zamanda tanımlanmayan olan CSS için çalışıyor $('div.red')

15

Etiketin stil özelliği:

$('div').filter(function() { 
    return $(this).css('background-color') == 'red'; 
});