2010-09-07 16 views
15

के आधार पर एक तत्व जो किसी वर्ग के साथ सब-तत्व है का चयन करने के सीएसएस में कोई तरीका है?चुनें तत्व बच्चे वर्ग

मैं एक विशेष श्रेणी के साथ <li> पर <ul> सूची में एक शैली लागू करना चाहता हूं।

+1

[सीएसएस पैरेंट चयनकर्ता] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/1014861/css-parent-selector) –

+0

हाँ, यह वास्तव में एक डुप्लिकेट है। धन्यवाद – akonsu

उत्तर

11

यह नहीं सीएसएस के साथ संभव है, क्योंकि आप एक वंशज के आधार पर एक पूर्वज का चयन करके झरना के खिलाफ काम कर रहे हैं।

$(document).ready(
    function() { 
    $('.givenClassName').parent().addClass('something'); 
    } 
); 

यह givenClassName साथ तत्व पाता है और फिर अपनी मूल तत्व का चयन करता है और उस तत्व को वर्ग something जोड़ता है:

सबसे अच्छा मैं प्रदान करते हैं और कर सकते हैं सुझाव

एक jQuery दृष्टिकोण है।

@Blaenk एक वैकल्पिक दृष्टिकोण सुझाता है, जो अधिक बहुमुखी है (उसके दृष्टिकोण को पूर्वज तत्व को उस तत्व के माता-पिता होने की आवश्यकता नहीं है जिसे आप चुन रहे हैं)।

स्पष्ट रूप से अन्य जेएस पुस्तकालय, और जेएस सभी एक ही प्रभाव प्राप्त कर सकते हैं, हालांकि मैं विशेष सलाह नहीं दे सकता, क्योंकि मैं अभी भी केवल जेएस के साथ खुद को परिचित कर रहा हूं और ज्यादातर jQuery के साथ (क्यों हाँ, मैं पूर्वाह्न खुद से शर्मिंदा ...)।

+0

+1 के लिए शैली सेट करने की आवश्यकता है, और आपके कोड उदाहरण में आपके पास एक अनजान उद्धरण है। –

+0

@ जेफ रूपर्ट, +1 और सुधार (सही करने के लिए संपादित) के लिए धन्यवाद =) –

+0

हाहा, मैं जावास्क्रिप्ट और jQuery के संबंध में एक ही नाव पर हूं। यद्यपि गति तक पहुंचने के लिए कुछ किताबें पढ़ी गईं। जावास्क्रिप्ट: गुड पार्ट्स और jQuery इन एक्शन, द्वितीय संस्करण –

-3
ul li { 
    /* styles */ 
} 

क्या आप यही पूछ रहे हैं?

+0

संख्या। मुझे उल – akonsu

2

सं सीएसएस कास्केड चयनकर्ता इस तरह के लिए अनुमति नहीं है।

इस मामले में सबसे अच्छा समाधान या तो जावास्क्रिप्ट के साथ डीओएम को संशोधित करने या ul टैग में कक्षाओं को जोड़ने के लिए परिणामी HTML को बदलने के लिए होगा।

4

जहाँ तक मुझे पता है, यह दुर्भाग्य नहीं संभव सीएसएस के साथ है।

आप हालांकि जावास्क्रिप्ट का उपयोग कर सकते हैं, तो jQuery closest() पद्धति का उपयोग करके ऐसा करने का एक अच्छा तरीका है। इसके लिए documentation यहां तक ​​कि आपके जैसा एक उदाहरण भी सूचीबद्ध है: एक उल का चयन करना जिसमें किसी विशेष वर्ग का ली हो।

$("li.some-class").closest("ul"); 

मुझे क्षमा करें अगर यह jQuery में ऐसा करने का सबसे अच्छा तरीका नहीं है। मैं वास्तव में jQuery के लिए नया हूं और यह उन विधियों में से एक है जिन्हें मैंने अभी तक सीखा है, और यह उपयुक्त लग रहा था।

+1

+1। –

संबंधित मुद्दे