2011-08-19 22 views
9

ile elementlerden ilk çocuğu belirleyin:CSS aşağıdaki kodu var Diyelim ki belirli özniteliği

<node> 
    <element bla="1"/> 
    <element bla="2"/> 
    <element bla="3"/> 
    <element bla="3"/> 
    <element bla="3"/> 
    <element bla="4"/> 
</node> 

Nasıl 3'e eşit özellik ilk çocuğu seçme hakkında gitmek? Ben belki de bu işi yapabileceğini düşünüyordum:

element[bla="3"]:first-child 

... ama :first-child sözde sınıfı yalnızca ilk çocuk düğüm bakar

+0

XML biçimlendirmesi veya benzeri bir şey için CSS kullanıyor musunuz? – BoltClock

+0

no, sadece sorunu göstermek için – Pass

+1

Bir dahaki sefere, HTML oluşturuyorsanız, ne tür cevaplar aldığınızı etkilemesi durumunda bir HTML örneği sağlayın. Cevabım birkaç vakayı kapsamaktadır. – BoltClock

cevap

14

işe yaramadı, bu yüzden ilk çocuk yoksa herhangi' t element[bla="3"], sonra hiçbir şey seçilmez.

Öznitelikler için benzer bir filtre sözde sınıfı yok. Bu etrafında kolay bir yolu, her biri daha sonra (bu hüner here ve here açıklanmıştır) ilk sonra ne dışlamak seçmektir:

element[bla="3"] { 
} 

element[bla="3"] ~ element[bla="3"] { 
    /* Reverse the above rule */ 
} 

Bu, elbette, sadece stilleri uygulamak için çalışır; Eğer (İşaretlemeniz HTML yerine keyfi XML gibi görünen beri) stil dışındaki amaçlar için o öğeyi seçmek istiyorsanız, size document.querySelector() gibi başka bir şeyi kullanmak gerekecektir:

var firstChildWithAttr = document.querySelector('element[bla="3"]'); 

Veya bir XPath ifadesi:

//element[@bla='3'][1] 
İlgili konular