JQuery में [0] का उपयोग करने के बजाय मुझे पहला तत्व कैसे मिलेगा?


91

मैं jQuery के लिए नया हूँ, अगर यह एक मूर्खतापूर्ण सवाल है तो माफी माँगता हूँ।

जब मैं इसका उपयोग करता हूं तो आईडी का उपयोग करने वाला एक तत्व मिल जाता है, मुझे पता है कि हमेशा एक मैच होता है और इसे एक्सेस करने के लिए मैं सूचकांक का उपयोग करता हूं [0]। क्या ऐसा करने का कोई बेहतर तरीका है? उदाहरण के लिए

var gridHeader = $("#grid_GridHeader")[0];

जवाबों:


98

आप इसका उपयोग भी कर सकते हैं, .get(0)लेकिन ... आपको ऐसा करने की आवश्यकता नहीं होनी चाहिए, जो ID द्वारा पाया गया है, जो हमेशा अद्वितीय होना चाहिए । मैं उम्मीद कर रहा हूं कि यह उदाहरण में सिर्फ एक निरीक्षण है ... यदि यह आपके वास्तविक पृष्ठ पर है, तो आपको इसे ठीक करने की आवश्यकता होगी ताकि आपकी आईडी अद्वितीय हो, और इसके बजाय एक वर्ग (या अन्य विशेषता) का उपयोग करें।

.get()(जैसे [0]) यदि आप एक jQuery वस्तु का उपयोग करना चाहते हैं .eq(0)या .first()इसके बजाय DOM तत्व प्राप्त करता है :)


17
सिवाय इसके कि$("#id") /* jQuery object */ != $("#id").get(0) /* DOM Object */
ब्रूनोएलएम

9
@BrunoLM - यदि आप एक DOM तत्व चाहते हैं document.getElementById('id'), तो इसे फेंकने के लिए सिर्फ एक jQuery ऑब्जेक्ट न बनाएं ... जो चयनकर्ता इंजन से ऑब्जेक्ट रैपर तक बहुत ही बेकार है, यह बिना किसी अच्छे कारण के overkill है :)
Nick क्रेवर

निक मैं सहमत हूं, शायद मैं हमेशा के लिए केवल jquery का उपयोग करके मूर्खतापूर्ण हो रहा था।
रबंस

2
@NickCraver - इसके लिए धन्यवाद। मैं बस के document.getElementById('id')साथ एक गुच्छा बदल दिया, $('#id')[0]लेकिन पसंद नहीं था [0]। फिजूलखर्ची के बारे में आपकी टिप्पणी ने मुझे परिभाषित करने के बारे में सोचा $0 = function(id){return document.getElementById(id);}और अब मुझे $0('id')बेहतर पसंद है। के रूप में चार की एक ही संख्या $('#id'), मैं बस चाहता हूँ यह हो सकता है$#('id')
ब्रूनो ब्रोंस्की

2
काश इन तरीकों का एक प्रकार होता जो एक खाली परिणाम सेट से एक मिथ्या मान लौटाता।
स्टीफन एम। हैरिस

25

$("#grid_GridHeader:first") साथ ही काम करता है।


3
मुझे लगता है कि यह आपके मुद्दे को संभालने का सबसे अच्छा तरीका है। यह अच्छी तरह से पढ़ता है, .eq (0) के विपरीत
डेव ग्रेगरी

18

आप पहली विधि का उपयोग कर सकते हैं:

$('li').first()

http://api.jquery.com/first/

btw मैं निक क्रेवर के साथ सहमत हूँ - document.getElementById () का उपयोग करें ...


1
यदि कोई तत्व नहीं मिलते हैं तो यह एक खाली सरणी देता है। []तर्कपूर्ण कथनों का उपयोग करने में सावधानी बरतें क्योंकि यह स्पष्ट होगा true
एशले

4

इस धारणा के साथ कि केवल एक ही तत्व है:

 $("#grid_GridHeader")[0]
 $("#grid_GridHeader").get(0)
 $("#grid_GridHeader").get()

... सभी समान हैं, एकल अंतर्निहित तत्व वापस कर रहे हैं।

JQuery स्रोत कोड से, आप देख सकते हैं कि get(0), कवर के तहत, अनिवार्य रूप से [0]दृष्टिकोण के रूप में एक ही काम करता है :

 // Return just the object
 ( num < 0 ? this.slice(num)[ 0 ] : this[ num ] );

उन सभी चीज़ों के लिए धन्यवाद, जो पाने के अलावा काम करती हैं () जो कि पहली वस्तु नहीं लगती हैं।
रबंस

वास्तव में मैं निक
क्रवे


3

आप पहले चयनकर्ता का उपयोग कर सकते हैं।

var header = $('.header:first')

एक तत्व के साथ एक सरणी देता है।
नितिन

-3

आप इस तरह की कोशिश कर सकते हैं:
yourArray.shift()

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