यह देखने के लिए jQuery का उपयोग करना कि क्या एक div का एक निश्चित कक्षा वाला बच्चा है


114

मेरे पास एक डिव #popupहै जो गतिशील रूप से कक्षा के साथ कई पैराग्राफों से भरा है .filled-text। मुझे यह बताने के लिए jQuery प्राप्त करने की कोशिश कर रहा हूं कि #popupक्या इनमें से एक पैराग्राफ है।

मेरे पास यह कोड है:

$("#text-field").keydown(function(event) {
    if($('#popup').has('p.filled-text')) {
        console.log("Found");
     }
});

कोई सुझाव?


1
क्या आप केवल एक बच्चे या किसी वंशज (बच्चे, पोते, बड़े पोते, आदि) के लिए देख रहे हैं। प्रश्न शीर्षक वर्तमान में "बच्चा" कहता है, लेकिन उत्तर मनमाने वंश के बारे में बात करते हैं।
हिप्पिट्रैयल

उस समय मैं मानता हूं कि मैं विशेष रूप से एक बच्चे की तलाश में था, लेकिन यह सुनिश्चित करना मुश्किल है क्योंकि यह सवाल लगभग 4 साल पुराना है। किसी भी तरह से, सवाल और जवाब दोनों बच्चों और वंशज को कवर करते हैं, और ऐसे उत्तर भी हैं जो विशेष रूप से बच्चों और वंशजों को कवर करते हैं, इसलिए मुझे यकीन नहीं है कि आप क्या पाने की कोशिश कर रहे हैं।
संस्क्रानच

ओह, यह सिर्फ एक खोज इंजन का उपयोग करते समय एक प्रश्न के लिए विशेष रूप से एक चयनकर्ता से मेल खाते बच्चे के साथ एक तत्व की तलाश के बारे में है, यह वह है जो इसे पाता है इसलिए मैंने प्रश्न शीर्षक को घुमा दिया होगा यदि यह अन्य लोगों को खोजने में मदद करने के लिए गलत था। भविष्य में सही सवाल।
हिप्पिट्रैमिल २

जवाबों:


196

आप खोज फ़ंक्शन का उपयोग कर सकते हैं :

if($('#popup').find('p.filled-text').length !== 0)
   // Do Stuff

7
यह वास्तव में काम के रूप में मैं इसे करने की जरूरत है, लेकिन संदर्भ के लिए if($('#popup').has('p.filled-text').length != 0) {भी काम करता है।
सैमसक्च

9
0. 0 के लिए जाँच करने की कोई आवश्यकता नहीं है js में एक गलत है। developer.mozilla.org/en-US/docs/Glossary/Falsy
РАВИ


7

JQuery के बच्चों के कवक का उपयोग करें ।

$("#text-field").keydown(function(event) {
    if($('#popup').children('p.filled-text').length > 0) {
        console.log("Found");
     }
});

$.children('').length चयनकर्ता से मेल खाने वाले बाल तत्वों की गिनती लौटाएगा।


1
.size().lengthसंपत्ति के समान ही लौटाता है लेकिन यह धीमा है, इसलिए आपको इसे बदल देना चाहिए।
जोहान्स क्लोउ

मुझे बाहर इशारा करने के लिए धन्यवाद! मैं यह नहीं जानता था। अपडेट किया गया!
क्रिस्टोफर रामिरेज़

आपका स्वागत है, लेकिन अभी भी एक गलती है। यह .lengthनहीं है.length()
जोहान्स क्लाउ

: PI ने सोचा कि यह सबसे jQuery इंटरफेस की तरह एक फ़ंक्शन था। मुझे लगता है कि असंगतता की तरह। लेकिन ठीक है, answare एक बार फिर से अपडेट किया गया: P धन्यवाद जोहान्स।
क्रिस्टोफर रामिरेज़

.lengthसंपत्ति यह सिर्फ देशी जावास्क्रिप्ट है, jQuery पुस्तकालय का हिस्सा नहीं है। लेकिन हां, यह कभी-कभी भ्रमित करने वाला हो सकता है।
जोहान्स क्लाऊ

4

सरल तरीका

if ($('#text-field > p.filled-text').length != 0)

2
.Size () विधि कार्यात्मक रूप से .length संपत्ति के बराबर है; हालाँकि, .length गुण पसंद किया जाता है क्योंकि इसमें फ़ंक्शन कॉल की ओवरहेड नहीं होती है।
हितेश मोधा

1

यदि यह एक सीधा बच्चा है तो आप नीचे कर सकते हैं यदि यह गहरा हो सकता है नेस्ट को हटा दें>

$("#text-field").keydown(function(event) {
    if($('#popup>p.filled-text').length !== 0) {
        console.log("Found");
     }
});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.