2011-06-08 18 views
7

मेरे पास दो ऑब्जेक्ट के साथ एक सहयोगी सरणी है। $(myassoc).each() के माध्यम से इसे चला रहा है, कॉलबैक केवल एक बार चलता है। इसके अलावा कॉलबैक पैरामीटर (इंडेक्स और ऑब्जेक्ट) क्रमशः 0 और संपूर्ण सहयोगी सरणी देता है।jQuery.each() सहयोगी सरणी (ऑब्जेक्ट्स) के साथ कैसे काम करता है?

एक jQuery.each() की अपेक्षा करेगा कि सरणी में प्रत्येक तत्व के लिए दौड़ें, सही कुंजी को इंडेक्स और सही तत्व के रूप में ऑब्जेक्ट के रूप में लौटाएं।

ऐसा क्यों नहीं हो रहा है, और क्या jQuery मैं कर सकता हूं जो मैं कर रहा हूं?

+0

क्या आप कोड दिखा सकते हैं? '$ (obj) .each()' –

+1

के साथ ठीक काम करता है क्या आपने '$ .each (myassoc, func ...'? –

+0

"की कोशिश की है यदि आपके पास केवल दो ऑब्जेक्ट्स हैं (सरणी की 2 कुंजी) तो केवल दो ही होंगे पुनरावृत्तियों। यदि आप उन दो वस्तुओं को 'प्रत्येक' करना चाहते हैं तो आपको उनके लिए '.each' फिर से करना होगा –

उत्तर

16

मुझे लगता है कि आप चाहते प्रत्येक के बजाय jQuery.each()()

लिए देख रहे हैं की कोशिश इस:

$.each(myassoc, function(index, value){ 
     //your code 
    }); 
7

इस प्रयास करें:

$.each(assocarray,function(i, value){ 
    console.log('index: ' + i + ',value: ' + value); 
}); 
1

समस्या यह है कि $.each() समारोह आंतरिक रूप से है उत्तीर्ण संग्रह की length संपत्ति को पुनर्प्राप्त और उपयोग करता है। लेकिन एक सहयोगी सरणी में जिसमें कोई पूर्णांक सूचकांक नहीं हैlength हमेशा 0 लगता है। $.each() के लिए अब चलने के लिए कुछ भी नहीं लगता है।

$.each() समारोह आंतरिक रूप से प्राप्त करता है और पारित कर दिया संग्रह का length संपत्ति का उपयोग करता है।

समाधान इसके बजाय किसी ऑब्जेक्ट का उपयोग करने के लिए है।

var myassoc = {}; 
संबंधित मुद्दे