एक माता पिता के jQuery के माता पिता


93

मैं वर्तमान में एक तत्व के माता-पिता के माता-पिता को खोजने की कोशिश कर रहा हूं। मेरे पास एक लिंक है जिस पर क्लिक किया जा रहा है <td>और मैं <tr>ऑब्जेक्ट प्राप्त करना चाहता हूं ।

क्यों नहीं "$ (यह) .परेंट ()। पेरेंट ()" काम? क्या होगा?

धन्यवाद,
ब्रेंडन

संपादित करें: ऐसा प्रतीत होता है कि मेरे सिंटैक्स में कोई त्रुटि थी जो पूरी चीज़ को बंद कर रही थी। "$ (यह) .परेंट ()। पेरेंट ()" वास्तव में काम करता है, लेकिन मैं $ (यह) .closest ('tr') के साथ जा रहा हूं क्योंकि यह सबसे कुशल समाधान लगता है।


1
क्या आप कोड पोस्ट कर सकते हैं ताकि हम देख सकें कि आपके माता-पिता चयनकर्ता काम क्यों नहीं कर रहे हैं?
TStamper

जवाबों:


221

सबसे अच्छा तरीका शायद उपयोग किया जाएगा closest:

$(this).closest('tr');

दस्तावेज़ देखें :

निकटतम तत्व पहले तत्व को देखकर काम करता है यह देखने के लिए कि क्या यह निर्दिष्ट अभिव्यक्ति से मेल खाता है, यदि ऐसा है तो यह केवल तत्व को ही लौटाता है। यदि यह मेल नहीं खाता है, तो यह दस्तावेज़, माता-पिता द्वारा माता-पिता को जारी रखना जारी रखेगा, जब तक कि एक तत्व नहीं मिलता है जो निर्दिष्ट अभिव्यक्ति से मेल खाता है। यदि कोई मिलान तत्व नहीं मिला, तो कोई भी वापस नहीं किया जाएगा।


20

यह काम करना चाहिए। आप $ (यह) .parents (टैग) भी आज़मा सकते हैं, जहां टैग वह टैग है जिसे आप ढूंढना चाहते हैं।

उदाहरण के लिए:

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

निकटतम ट्रे "श्रृंखला को ढूंढेगा"।


9

यह काम करना चाहिए ... आप कोशिश कर सकते हैं

$(this).parents(':eq(1)');

.Parents (चयनकर्ता) कहता है कि सभी पूर्वजों को चुनें जो चयनकर्ता से मेल खाते हैं

और: eq (1) का कहना है कि सूची में oneth (शून्य-अनुक्रमित, इसलिए दूसरा) तत्व ढूंढें


आप यह सुनिश्चित करने का प्रयास कर सकते हैं कि यह एक HTML एंकर टैग है। करने की कोशिश करें: चेतावनी ('लंगर एचटीएमएल (' + $ (यह)। Html () + ')');
लाथन

6

इस स्निपेट ने मेरे लिए अतीत में प्रदर्शन किया है:

$(this).parent().parent(); 

हमारे लिए कुछ कोड पोस्ट करके देखें कि कहीं दूसरी समस्या तो नहीं ...


मैं इससे सहमत हु। मैं $(this).parent().parent()मुद्दे के बिना उपयोग कर सकते हैं
DrewT


2

यदि आपके पास माता-पिता के लिए किसी प्रकार का आईडी / वर्ग है, तो आप माता-पिता () का उपयोग कर सकते हैं, लेकिन यह आपको सभी माता-पिता को <body> तक देगा जब तक आप फ़िल्टर नहीं करते () या इसे किसी अन्य तरीके से रोक नहीं सकते

$(this).parents('.myClass');

आशा है कि यह किसी की मदद करता है :)


1

$ (इस) .parent () को jQuery ऑब्जेक्ट जैसे $ ($ (यह) .parent ()) में लपेटने का प्रयास करें मुझे अक्सर यह सुनिश्चित करने की आवश्यकता होती है कि मेरे पास एक वैध jquery ऑब्जेक्ट है। वहां से आपको माता-पिता के माता-पिता की पकड़ पाने में सक्षम होना चाहिए, या शायद प्राइम () का उपयोग करना चाहिए।


8
यह पूरी तरह से व्यर्थ है। आप सभी एक और jQuery ऑब्जेक्ट बनाकर समय बर्बाद कर रहे हैं ...
जेम्स


0

.closest() हमेशा सबसे अच्छा विकल्प विशेष रूप से नहीं होता है जब आपके पास एक ही तत्व का निर्माण होता है।

<div>
    <div>
        <div>
        </div>
    </div>
</div>

आप एक माता-पिता की संतान कर सकते हैं और यह बहुत आसान है:

var parent = $('.myDiv').parent();
var parentParent = $(parent).parent();
var parentParentParent = $(parentParent).parent();

आदि।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.