2013-01-23 26 views
5

मुझे एक विशेष बाल तत्व खोने वाले तत्वों को वापस करने के लिए एक jquery चयनकर्ता बनाने में सहायता की आवश्यकता है।एक तत्व के लिए jquery चयनकर्ता एक बच्चे तत्व को मिस कर रहा है

को देखते हुए निम्न HTML टुकड़ा:

<div id="rack1" class="rack"> 
    <span id="rackunit1" class="rackspace"> 
     <span id="component1">BoxA</span> 
     <span id="label1">Space A</span> 
    </span> 
    <span id="rackunit2" class="rackspace"> 
     <span id="label2">Space B</span> 
    </span> 
    <span id="rackunit3" class="rackspace"> 
     <span id="component2">BoxA</span> 
     <span id="label3">Space C</span> 
    </span> 
</div> 
<div id="rack2" class="rack"> 
    <span id="rackunit4" class="rackspace"> 
     <span id="component3">BoxC</span> 
     <span id="label4">Space D</span> 
    </span> 
    <span id="rackunit5" class="rackspace"> 
     <span id="label5">Space E</span> 
    </span> 
    <span id="rackunit6" class="rackspace"> 
     <span id="component4">BoxD</span> 
     <span id="label6">Space F</span> 
    </span> 
</div> 

मेरे लिए खोजें rackunit कोई घटक अवधि के साथ फैला है। इस प्रकार अब तक मेरे पास है: $ मुझे rackunit स्पैन की सभी को यकीन है कि कैसे या तो एक घटक अवधि के साथ उन लोगों को बाहर या एक के बिना केवल उन चयन करने के लिए प्राप्त करने के लिए, नहीं ...

+1

का संयोजन: नहीं और: इसे करना चाहिए। –

उत्तर

8

मैं ("रैक .rackspace।") लगता है कि निम्नलिखित काम करना चाहिए:

$(".rack .rackspace:not(:has(span[id^=component]))"). ... 

डेमो:http://jsfiddle.net/WbCzj/

+0

सीएसएस चयनकर्ता, उह ... आह ठीक है, यह काम करता है, और यह दूसरे उत्तर से छोटा है। +1 – Cerbrus

+0

धन्यवाद! कार्यान्वयन वास्तव में प्रश्न से अधिक जटिल है, लेकिन आपने वही प्रदान किया जो मुझे चाहिए था। –

+0

@ कोसकालिस आपका स्वागत है। – VisioN

3

आप इस्तेमाल कर सकते हैं .filter():

$('.rack .rackspace').filter(function() { 
    return $(this).find('span[id^="component"]').length === 0; 
}); 
+0

धन्यवाद, चीजों को करने के अन्य तरीकों को देखना हमेशा अच्छा होता है। –

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