2010-05-19 9 views
35

जनरल:पहले चयनकर्ता का चयन कैसे करें जो एक चयनकर्ता से मेल खाता है?

मैं jQuery में एक तत्व के पहले मिलान पूर्वज का चयन कर सकते कैसे?

उदाहरण:

$('.remove').click(function(){ 
    $(this).parent().parent().hide(); 
    return false; 
}); 

यह काम करता है:

इस jQuery कोड का उपयोग कर "निकालें" इस HTML ब्लॉक

<table> 
    <tbody> 
     <tr> 
      <td> 
       <a href="#" class="remove">Remove</a> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <a href="#" class="remove">Remove</a> 
      </td> 
     </tr> 
    </tbody> 
</table> 

मैं क्लिक करके तालिका में एक पंक्ति को हटा सकते हैं ले लो , लेकिन यह बहुत नाजुक है। अगर कोई <a> को <div> में डालता है, उदाहरण के लिए, यह तोड़ देगा।

"यहाँ एक तत्व है, अब निकटतम पूर्वज है कि कुछ चयन मानदंड से मेल खाता है खोजने के लिए और इसे वापस"

धन्यवाद

उत्तर

56

कि closest होगा::

वहाँ jQuery में एक चयनकर्ता वाक्य रचना है कि इस तर्क इस प्रकार है
$(this).closest('tr').hide(); 
+0

मैं इस जवाब को स्वीकार करेंगे। तुम बहुत जल्दी थे। धन्यवाद – Zach

1

आप मेरे द्वारा विश्वास किए गए मूल तर्क के लिए चयनकर्ता को पास कर सकते हैं।

$('.remove').click(function(){ 
    $(this).parents("tr:first").hide(); 
    return false; 
}); 

या आप किसी अन्य उत्तर से संकेत के रूप में निकटतम उपयोग कर सकते हैं।

$('.remove').click(function(){ 
    $(this).closest("tr").hide(); 
    return false; 
}); 
+0

नहीं, 'माता-पिता' केवल तत्काल माता-पिता को देखता है, न कि सभी पूर्वजों। – interjay

+0

'पैरेंट' डोम पेड़ के एक स्तर को पार करता है, आपको इसके बजाय 'माता-पिता' की आवश्यकता होगी। साथ ही, फ़िल्टर अभिव्यक्ति 'tr: first' (कोई स्थान नहीं) होनी चाहिए। – karim79

+1

@karim धन्यवाद, जब मैंने उत्तर दिया तब तक कोई कॉफी नहीं। प्रतिबिंबित करने के लिए संशोधित। – Gabriel

3

मैं के रूप में @Kobi बताते हैं (+1) closest का उपयोग कर के रूप में यह है कि ऐसा करने के लिए सबसे संक्षिप्त तरीके से हो रहा है पसंद करते हैं। बस बाहर बात करने के लिए, आप भी parents उपयोग कर सकते हैं:

$(this).parents("tr:first") 
+0

अच्छा विकल्प। मैंने केवल 'माता-पिता() '(' निकटतम() 'के विपरीत) चयनकर्ता में' पहला 'बिट देखा है * एकाधिक * तत्व - तत्काल माता-पिता से ऊपर के सभी मिलान तत्व। – Dunc

0

आप jQuery 1.4 का उपयोग कर रहे मान लिया जाये, तो आप .parentsUntil() उपयोग कर सकते हैं जो चयनित पूर्वज सहित तक लेकिन नहीं पूर्वजों के सभी वापस आ जाएगी।

तो आपके मामले में मैं कुछ इस तरह के साथ जाना होगा: जब अतः मुझे देता है

$('.remove').click(function(){ 
    $(this).parentsUntil("tr").parent().hide(); 
    return false; 
}); 
संबंधित मुद्दे

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