2009-08-02 5 views
9

space और > चयनकर्ताओं के बीच क्या अंतर है? और संभवतः संबंधित, मैं किसी चीज़ की तलाश कैसे कर सकता हूं जो कि किसी और चीज का प्रत्यक्ष बच्चा है, और वंश रेखा को कम नहीं कर सकता?jQuery की जगह और> चयनकर्ताओं के बीच क्या अंतर है?

उत्तर

27

के लिए:

<ul> 
    <li>Item 1</li> 
    <li>Item 2 
    <ul> 
     <li>Item 2.1</li> 
     <li>Item 2.2</li> 
    </ul> 
    </li> 
    <li>Item 3</li> 
</ul> 

उदाहरण के लिए

$("ul > li").addClass("blah"); 

जबकि 1 2 और 3 के लिए वर्ग "blah" कहते हैं:

$("ul li").addClass("blah"); 

ऐड वर्ग "blah" हर सूची तत्व के लिए ।

मुझे यकीन नहीं है कि आप < के साथ क्या संदर्भ दे रहे हैं और? ऑपरेटरों।

+3

क्या उल> ली उन सभी को "blah" में सेट करता है? क्योंकि आपके पास एक उप सूची है जिसमें उल में ली बच्चे भी हैं। –

+3

> तात्कालिक बच्चों का मतलब है, न कि पोते या अधिक। –

+3

उल> ली नेस्टेड सूचियों के साथ-साथ –

10

सीएसएस में, > का अर्थ है "प्रत्यक्ष बच्चा": केवल नोड्स जो प्रत्यक्ष बच्चे हैं, चुने जाते हैं।

जबकि एक जगह का मतलब है "किसी भी वंशज": सीधे बच्चों और उन बच्चों के बच्चों का चयन किया जा सकता है।

मैं चाहता हूं कि jQuery उसी सम्मेलन का उपयोग करे।

2

जैसा कि पहले से ही उल्लेख किया गया है, एक स्थान किसी भी वंशज का चयन करेगा, जबकि > केवल तत्काल बच्चों का चयन करेगा।

#foo > * > * > .bar 

(सभी वर्ग "बार" के साथ तत्व है जो आईडी "foo" के साथ तत्व के महान पोते हैं)

2

: यदि आप केवल पोते या महान-पोते का चयन करना चाहते हैं, तो आप इस इस्तेमाल कर सकते हैं इसे देखें ..

$(".testit > a") //match the first <a> tag below 
$(".testit a") // matches all <a> tag below 

<p class="testit"> 
    <a href="#">All the rules will match this</a> 
    <span> 
    <a href="#">second rule can only select this</a> 
    </span> 
</p> 
संबंधित मुद्दे