यह निर्धारित करते हुए कि क्या jQuery को कोई तत्व नहीं मिला है


126

मैं jQuery के चयनकर्ताओं का उपयोग कर रहा हूं, विशेष रूप से आईडी चयनकर्ता:

$("#elementId")...

मुझे यह कैसे निर्धारित करना चाहिए कि jQuery ने तत्व पाया है या नहीं? यहां तक ​​कि अगर निर्दिष्ट आईडी वाला तत्व अगले बयान में मौजूद नहीं है:[object Object]

alert($("#idThatDoesnotexist"));

जवाबों:


187

$('#idThatDoesnotexist').lengthवह है जो आप ढूंढ रहे हैं। (यदि यह कुछ नहीं पाता है, तो यह होगा === 0।) तो आपका सशर्त वक्तव्य शायद होना चाहिए:

if ($ ('# id')। लंबाई) {/ * कोड अगर पाया गया * /} बाकी {/ * कोड नहीं मिला तो * *}

आपको उस अलर्ट से लौटाया जा रहा है क्योंकि jQuery (लगभग) हमेशा "jQuery ऑब्जेक्ट" का उपयोग करता है, जब आप इसका उपयोग करते हैं, जो कि jQuery के तत्वों के लिए एक आवरण होता है जो कि विधि के अस्तर की अनुमति देता है।


3
आपको शून्य, $ ('# आईडी') की आवश्यकता नहीं है। लंबाई पर्याप्त है (शून्य == झूठी जावास्क्रिप्ट में)
डेविड हेलिंगिंग

13
@ इस तथ्य पर ध्यान दें कि आपको इसकी आवश्यकता नहीं है, यह जरूरी नहीं है कि यह बेमानी हो, पहली नज़र में IMO इसे और अधिक स्पष्ट बनाता है।
अबीर

1
@ अरब: यह केवल तब तक अधिक स्पष्ट है जब तक आप इसके बिना वाक्यविन्यास के लिए उपयोग किए जाते हैं, स्पष्टता के बजाय सच्चाई के लिए परीक्षण 0. स्पष्ट रूप से मैं बिना वाक्य रचना के उपयोग किए जाने का सुझाव देता हूं == 0, आप इसे हर जगह देखेंगे।
स्कॉट स्टाफ़र्ड

@ScottStafford, अधिक निकासी के लिए, आप भी उपयोग कर सकते हैं if (!!$('#id').length), कि बूलियन कास्ट करें।
डेनियल व्रुत

6
आपको यह भी विचार करना चाहिए कि क्या कुछ वर्णों को सहेजने के लाभ संभावित भ्रम की भरपाई करते हैं जब कोई जावास्क्रिप्ट की बारीकियों से अपरिचित होता है, कोड को पढ़ता है। मेरी राय में जहां तक ​​स्थिरता का सवाल है, सबसे अच्छा अभ्यास नहीं है।
मैट कैर 13

26

Futuraprime सही है लेकिन आप निम्न कार्य करके अपने सिंटैक्स को छोटा कर सकते हैं:

if ($("#id").length) {
   //at least one element was found
} else {
   //no elements found
}

11
!$.isEmptyObject($.find('#id'))

यह सच है अगर तत्व मौजूद है और गलत है अगर यह नहीं है।


7
$('#my_selector').length > 0 
$('#my_selector').get(0) !== undefined
$('#my_selector')[0] !== undefined

यह मूल है, अब आप जो चाहें करें।

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