2012-05-08 17 views
7

मैं प्रीलोडेड एमपी 3 फ़ाइल चलाने के लिए इस कोड का उपयोग कर रहा हूं।एक jquery चयनकर्ता के बाद [] ब्रैकेट्स क्या मतलब है?

var shuffle = $("#shuffle")[0]; 

shuffle.play(); 

शफल मेरी आईडी है। मुझे नेट से कोड मिला लेकिन मैं यह नहीं समझ सकता कि jquery चयनकर्ता के बाद [0] क्या है। यदि मैं इसे हटा देता हूं तो ध्वनि नहीं खेलती है। यह क्या करता है?

धन्यवाद

+1

http://stackoverflow.com/questions/1302428/what-does-jquery-actually-return – Jack

+0

अब तक सभी उत्तरों के लिए धन्यवाद। मुझे लगता है मुझे विस्तार करना चाहिए। मुझे लगता है कि एक प्रकार की सरणी थी। लेकिन आप यह कहने के लिए कहां जाएंगे कि ऑडियो टैग का पहला तत्व प्ले बटन है? – Anatoly

+0

निफ्टीड्यूड के उत्तर की जांच करें। यह वास्तव में एक सरणी नहीं है, यह एक JQuery ऑब्जेक्ट है जिसमें सरणी जैसी संरचना होती है जिसमें केवल 1 तत्व होता है (जैसा कि आपने 'आईडी चयनकर्ता' का उपयोग किया था)। '[0]' जोड़कर JQuery ऑब्जेक्ट के बजाय DOM तत्व लौटाता है, जिससे आप '.play()' विधि का उपयोग कर सकते हैं। –

उत्तर

0

लौटे सरणी के n वें तत्व। नियमित जावास्क्रिप्ट या PHP में और प्रोग्रामिंग भाषाओं का एक अच्छा हिस्सा जैसा कि सरणी का समर्थन करता है।

0

JQuery एक सरणी देता है। [0] सरणी में पहला आइटम लेता है।

+0

तकनीकी रूप से, यह एक jQuery सरणी जैसी वस्तु है, एक सरणी नहीं है। कोई मुद्दा नहीं है जब तक कि आप 'तत्व') जैसे पहले तत्व को कुछ करने का प्रयास न करें। – Blazemonger

0

$("#shuffle") तत्वों की एक सरणी वापस आ जाएगी, आपकी क्वेरी के साथ अनुसार, [div,span,etc]
$("#shuffle")[n] की तरह मतलब है कि आप इस सरणी
इस मामले में के n वें तत्व का चयन कर रहे, $("#shuffle")[0] इस सरणी के पहले तत्व का चयन करता है

0

$ ('# shuffle') के बाद ब्रैकेट प्रदान किए गए उस चयनकर्ता का पहला तत्व प्राप्त करते हैं।

$('div.test')[0]; 

<div class="test"></div> <-- this one would get returned 
<div class="test"></div> 
<div class="test"></div> 
1

अपने प्रश्न का सीधा संदर्भ में, $("#shuffle") एक आईडी के एक चयनकर्ता है, जो एक jQuery ऑब्जेक्ट तो [0] हिस्सा है (नहीं प्रति-से एक सरणी है, लेकिन यह एक सरणी की तरह संरचना है), ([] के बिना) द्वारा लौटाए गए jQuery ऑब्जेक्ट के बदले आईडी shuffle के साथ तत्व के मूल DOMElement ऑब्जेक्ट को मूल रूप से वापस कर रहा है।

मूलतः document.getElementById('shuffle')

संपादित कर (के रूप में मैट ने बताया) के रूप में ही

इस तो आप अपने .play() कॉल अपने ऑडियो स्ट्रीम शुरू करने के लिए करने की अनुमति देगा।

+0

यहां सबसे अच्छा जवाब, मैं बस कुछ इसी तरह पोस्ट करने वाला था। यहां ध्यान देने योग्य महत्वपूर्ण बात यह है कि '[0]' के साथ सरणी को खराब करने का अर्थ है कि आपको 'DOMElement' मिलता है, न कि jQuery एक, जो आपको अपनी ऑडियो स्ट्रीम शुरू करने के लिए अपना' .play() 'कॉल करने की अनुमति देता है। –

+0

धन्यवाद निफ्टीड्यूड। जिसने मुझे इसे एक साथ रखने में मदद की। मुझे खेलने के लिए डीओएम तत्व प्राप्त करने की आवश्यकता है(): http://www.w3schools.com/HTML5/av_met_play.asp – Anatoly

0

यह मूल जावास्क्रिप्ट ऑब्जेक्ट देता है जिसमें तत्वों के मिलान किए गए सेट में पहला तत्व होता है।

10

jQuery एक सरणी जैसी वस्तु है जिसमें आपके सभी मिलान किए गए तत्व शामिल हैं। कई बार, jQuery डिफ़ॉल्ट रूप से अपने परिवर्तन पहला तत्व को संग्रह में लागू होंगे:

$("li").css("display"); // display val of first element, not all elements. 

हालांकि कई li तत्वों सकता है पाया गया है, jQuery वस्तु के बारे में पहले परोक्ष हमें बताता है।हम स्पष्ट रूप से ऐसा करने के लिए यह हिदायत सकता $.get विधि का उपयोग कर:

$("li").get(0); // Returns first DOM element 
$("li")[0]; // Also returns first DOM element 

हम nodeName जांच कर सकता है यह सत्यापित करने के लिए:

$("li").get(0).nodeName; // LI 
$("li")[0].nodeName; // LI 

अगर हम कवर के तहत देखें, तो हम देख सकते हैं कि $.get() है कार्यान्वित:

get: function(num) { 
    return num == null 
    ? this.toArray() 
    : (num < 0 
      ? this[ this.length + num ] 
      : this[ num ]); 
} 
इस से

हम देख सकते हैं कि जब कोई तर्क प्रदान की जाती है, तत्व का पूरा संग्रह में बदल जाती है एक सरणी, और फिर लौट आया। जब कोई तर्क प्रदान किया जाता है, उदाहरण के लिए 2, हम तत्व को इंडेक्स 2 के रूप में वापस करते हैं। यदि -2 प्रदान किया गया है, तो यह लंबाई में जोड़ा जाता है (मान लीजिए कि लंबाई 5, 5 + (- 2) 3 है) और परिणामी संख्या है सूचकांक के रूप में इस्तेमाल किया।

अपने विशेष उदाहरण के संबंध में

तो:

var shuffle = $("#shuffle")[0]; 
shuffle.play(); 

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

आप $.get(0) का उपयोग कर सकते हैं, हालांकि हमने अभी देखा है, यह सिर्फ एक और कदम जोड़ देगा। आंतरिक रूप से, jQuery उसी कोड को निष्पादित करेगा जो आप ऊपर कर रहे हैं, [0]

0

इसकी वस्तु के कालानुक्रमिक क्रम का मतलब प्रक्रिया हमेशा सरणी पर इस्तेमाल किया जा करने के लिए [0], [1], [2] ... आप जाँच कर सकते हैं Here

संबंधित मुद्दे