JQuery का उपयोग करके पहले मूल DIV का चयन कैसे करें?


95
var classes = $(this).attr('class').split(' '); // this gets the current element classes

var classes = $(this).parent().attr('class').split(' '); // this gets the parent classes.

उपरोक्त स्थिति में माता-पिता एक एंकर है।

अगर मैं $ (इस) का पहला मूल DIV प्राप्त करना चाहता था तो कोड कैसा दिखेगा?

var classes = $(this).div:parent().attr('class').split(' '); // just a quick try.

* मूल रूप से मैं $ (यह) के पहले मूल DIV की कक्षाएं प्राप्त करना चाहता हूं।

धन्यवाद

जवाबों:


161

.closest()निर्दिष्ट चयनकर्ता तक डोम ट्री को पार करने के लिए उपयोग करें ।

var classes = $(this).parent().closest('div').attr('class').split(' '); // this gets the parent classes.

10
parents("div")ट्रैवर्सिंग है और सभी माता-पिता के तलाक को वापस कर देता है, जिसका उपयोग आपको .eq(0)यह सुनिश्चित करने के लिए करना चाहिए कि यह सिर्फ वह ही लौटाए जो आप चाहते हैं
me

3
याद रखें कि प्रदर्शन के लिए उपयोग करना बेहतर है .parents('div').eq(0)- उस शुद्ध सीएसएस चयनकर्ता का उपयोग करके jQuery द्वारा केवल पहले तत्व को फ़िल्टर करने के लिए आपको हल्का प्रदर्शन बढ़ावा मिलेगा - jQuery
नूह व्हिटमोर

@NoahWhitmore ने इसे तय किया। closest()इसलिए इसका इस्तेमाल सभी माता-पिता नहीं बल्कि माता- divपिता करेंगे।
शेफ

41

उपयोग करें .closest(), जो पहले पूर्वज तत्व देता है जो दिए गए चयनकर्ता से मेल खाता है 'div':

var classes = $(this).closest('div').attr('class').split(' ');

संपादित करें:

जैसा कि @ शेफ ने उल्लेख किया है, .closest()वर्तमान तत्व को वापस कर देगा यदि ऐसा होता है तो यह भी डीआईवाई है । इसे ध्यान में रखने के लिए, .parent()पहले उपयोग करें :

var classes = $(this).parent().closest('div').attr('class').split(' ');

5
.closest()यदि $(this)DIV तत्व है तो स्वयं से मेल खाएगा ।
शेफ

@ शेफ, यह मेरे लिए नई जानकारी थी, धन्यवाद। मैंने इसे दर्शाने के लिए अपना उत्तर संपादित कर दिया है।
तातु उलेमेन

3
आप बस इस्तेमाल कर सकते हैं.parents("div").eq(0)
meo

8

यह माता पिता हो जाता है अगर यह एक तलाक है। तब यह कक्षा हो जाता है।

var div = $(this).parent("div");
var _class = div.attr("class");

1
@meo यही सवाल पूछा है।
डैनियल वेस्ट


0

दो सबसे अच्छे विकल्प हैं

$(this).parent("div:first")

$(this).parent().closest('div')

और निश्चित रूप से आप द्वारा कक्षा attr पा सकते हैं

$(this).parent("div:first").attr("class")

$(this).parent().closest('div').attr("class")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.