2008-09-04 31 views
20

Bir .container birçok .components içerir ve kendilerini böylejQuery: Sınıf değil, CSS kuralına göre seçim yapabilir misiniz?

Verilen kod (sırayla .components vs vs içerebilir olan) .containers içerebilir .components edebilirsiniz: ne yapıyoruz

$(".container .component").each(function(){ 
    $(".container", this).css('border', '1px solid #f00'); 
}); 

Yalnızca CSS'de 'auto' olarak ayarlanmış genişliklerine sahip olan iç içe geçmiş kapsayıcıları seçmek için parantez içindeki çizgiye eklemem gerekiyor mu? Eminim basit bir şeydir, ama jQuery'yi hiç bu kadar kullanmamıştım.

+0

çok teşekkürler. Seçici içinde CSS kuralını dahil etmeyi çok isterdim, böylece bir CSS genişliği olan bir .component grubundaki tüm .container'larım vardı: auto, ama boşver. –

cevap

18
$(".container .component").each(function() 
{ 
    $(".container", this).each(function() { 
     if($(this).css('width') == 'auto') 
     { 
      $(this).css('border', '1px solid #f00'); 
     } 
    }); 
}); 
diğer cevaba benzer

ancak o zamandan beri bileşenler de ayrıca .each() genişlik için burada da kontrol ihtiyacı, birden fazla kapsayıcı olabilir.

4
$(".container .component").each(function() { 
    if ($(".container", this).css('width') === "auto") 
     $(".container", this).css('border', '1px solid #f00'); 
}); 
16

.filter()'a bakmak isteyebilirsiniz. gibi

şey: cevaplar için

$('.container .component .container') 
.filter(function() {return $(this).css('width') == 'auto';}) 
.css({border: '1px solid #f00'}); 
+0

Bu, beklediğim tek satır ile aradığım şey. –

İlgili konular