2011-08-19 15 views
9

साथ तत्वों से पहले बच्चे का चयन कहना देता है कि हम निम्न कोड है:सीएसएस विशेष विशेषता

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

कैसे आप पहले बच्चे कि 3 के बराबर विशेषता है चुनने के बारे में जाना होगा? मैं सोच रहा था कि शायद यह काम कर सकता है:

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

... लेकिन यह काम नहीं किया

+0

क्या आप शैली एक्सएमएल मार्कअप या कुछ के लिए सीएसएस का उपयोग कर रहे हैं? – BoltClock

+0

नहीं, बस समस्या को चित्रित करने के लिए – Pass

+1

यदि आप एचटीएमएल स्टाइल कर रहे हैं तो अगली बार एक HTML नमूना प्रदान करें, यदि यह प्रभावित करता है कि आपको किस प्रकार के उत्तर मिलते हैं। मेरे जवाब में कुछ मामलों को शामिल किया गया है। – BoltClock

उत्तर

14

:first-child छद्म वर्ग केवल पहला बच्चा नोड पर लग रहा है, इसलिए यदि पहला बच्चा 'isn टी element[bla="3"], तो कुछ भी नहीं चुना गया है।

गुणों के लिए एक समान फ़िल्टर छद्म-वर्ग नहीं है। इस के आसपास एक आसान तरीका चयन करने के लिए हर एक को बाहर तो पहले के बाद क्या आता है (इस चाल here और here समझाया गया है) है:

element[bla="3"] { 
} 

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

यह, ज़ाहिर है, केवल शैलियों लागू करने के लिए काम करता है; यदि आप स्टाइल के अलावा अन्य प्रयोजनों के लिए उस तत्व बाहर लेने के लिए (अपने मार्कअप बल्कि HTML से मनमाना एक्सएमएल प्रतीत होता है के बाद से) चाहते हैं, आप document.querySelector() की तरह कुछ और का उपयोग करना होगा:

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

या एक XPath अभिव्यक्ति:

//element[@bla='3'][1] 
संबंधित मुद्दे