2012-06-10 14 views
8

मैं Head First jQuery नामक पुस्तक से jQuery सीख रहा हूं। किताब से सीखना बहुत आसान है। मुद्दा यह है कि .each() फ़ंक्शन (छवि में शामिल है जिसे मैंने स्कैन किया है) जिसमें एक फ़ंक्शन() पैरामीटर है। फ़ंक्शन() पैरामीटर index और value हैं। सूचकांक पृष्ठ पर समझाया गया है, लेकिन मूल्य के बारे में क्या? और यह भी, क्योंकि यह एक अज्ञात फ़ंक्शन है (जिसे पुन: उपयोग नहीं किया जा सकता है) यह किसी भी पैरामीटर को कैसे लेता है?jQuery.each (फ़ंक्शन (अनुक्रमणिका, मान) {}); मूल्य क्या है?

+5

http://api.jquery.com/each – BoltClock

+0

और कौन अज्ञात कार्य पैरामीटर नहीं ले सकते हैं? :) – BoltClock

उत्तर

1

यह दूसरा पैरामीटर जिसे आपने मूल्य कहा है मूल्य संग्रह है जो वर्तमान में प्रत्येक फ़ंक्शन द्वारा संसाधित किया जाता है।

आपके दूसरे प्रश्न के लिए - अज्ञात कार्यों का पुन: उपयोग किया जा सकता है, सिर्फ इसलिए कि उनके पास कोई नाम नहीं है इसका मतलब यह नहीं है कि उनके पास पैरामीटर नहीं हो सकते हैं या निष्पादित नहीं किए जा सकते हैं। निम्नलिखित उदाहरण देखें:

function execute_fn(fn) { 
    fn(1,2); 
} 

execute_fn(function(a,b) { ... }); 
+0

क्या ** वर्तमान में संसाधित किए गए संग्रह का मूल्य ** इसका मतलब है?: - $ ("। MyClass")। प्रत्येक (फ़ंक्शन (अनुक्रमणिका, मान) {}); और हमारे पास है: - <इनपुट प्रकार = "बटन" वर्ग = "myClass" मान = "बटन" /> – cadence441

+0

... जारी <इनपुट प्रकार = "सबमिट करें" वर्ग = "myClass" value = "सबमिट करें"/> तो पहले तत्व का मूल्य "बटन" बन जाएगा? और (एफएन) jQuery परिभाषित या उपयोगकर्ता परिभाषित है? मेरा मतलब है कि .each() फ़ंक्शन jQuery परिभाषित है। बस की तरह (एफएन) jQuery परिभाषित है? यदि यह उपयोगकर्ता परिभाषित है, तो हम पैरामीटर एफएन के रूप में कुछ भी पास नहीं करते हैं, है ना? और एक के लिए (ए, बी) सही है? – cadence441

+0

पहले निष्पादन मूल्य में आपके उदाहरण में बटन का डीओएम-तत्व होगा (इसलिए यह होगा; प्रत्येक कार्य में दूसरा पैरामीटर और यह बिंदु उसी ऑब्जेक्ट पर होगा) और अगली बार यह डोम-एलिमेंट होगा सबमिट बटन का। मेरे उदाहरण के बारे में: यह केवल यह प्रदर्शित करना चाहिए कि किसी भिन्न फ़ंक्शन द्वारा अज्ञात फ़ंक्शन कैसे निष्पादित किया जा सकता है। यह बिल्कुल jQuery का उपयोग नहीं करता है। मैं आपको जावास्क्रिप्ट मूलभूत बातें पढ़ने के लिए अनुशंसा करता हूं। जावास्क्रिप्ट सी ++/सी/जावा जैसा दिख सकता है लेकिन यह बहुत अलग है। – Preli

17

jQuery में दो each विधियां हैं। एक jQuery ऑब्जेक्ट पर साइकिल चलाने के लिए है जिसमें कई मैचों हैं। उदाहरण के लिए, मान लीजिए हम पृष्ठ पर सभी अनुच्छेदों को खोजने के लिए चाहता था:

$("p").each(function(){ 
    // Do something with each paragraph 
}); 

दूसरे, वहाँ एक अधिक सामान्य each वस्तुओं या सरणियों से अधिक पुनरावृत्ति के लिए है:

var names = ["Jonathan", "Sampson"]; 
$.each(names, function(){ 
    // Do something with each name 
}); 

जब में तत्वों से अधिक jQuery चक्र इनमें से किसी भी उदाहरण में, यह उस ऑब्जेक्ट की गिनती रखता है जो वर्तमान में इसे संभालने में है। जब यह हमारे अज्ञात फ़ंक्शन को निष्पादित करता है, तो यह दो मानकों में गुजरता है - वर्तमान मूल्य जो हम (इंडेक्स) पर हैं, और वह ऑब्जेक्ट (मान)।

var names = ["Jonathan", "Sampson"]; 
$.each(names, function(index, value){ 
    alert(value + " is " + index); 
}); 

कौन सा आउटपुट "जोनाथन 0 है", और "सैम्पसन 1 है" हम एक शून्य आधारित सूचकांक का उपयोग कर रहे के बाद से।

लेकिन हमारे मूल jQuery ऑब्जेक्ट के बारे में क्या?

$("p").each(function(index, value){ 
    alert(value.textContent); // The text from within the paragraph 
}); 

इस मामले में, value एक वास्तविक HTMLParagraphElement वस्तु है, इसलिए हम textContent या innerText उस पर संपत्तियों की तरह उपयोग कर सकते हैं अगर हम चाहते:

+0

तो 'value' ऑब्जेक्ट है और' value' प्रॉपर्टी नहीं है? 'मूल्य' संपत्ति से मेरा मतलब है कि 'इनपुट' की तरह ही एक 'टाइप' प्रॉपर्टी है जो' बटन ',' submit' हो सकती है और इसी तरह 'इनपुट' प्रकारों के लिए' मूल्य 'संपत्ति भी हो सकती है। – cadence441

+0

@ कैडेंस 441 हां, 'मान' तत्व है। यह एक HTML तत्व हो सकता है, या यह एक स्ट्रिंग हो सकता है। या यह एक सरणी, एक वस्तु, या संख्या हो सकती है - यह उस संग्रह पर निर्भर करता है जिस पर आप साइकिल चला रहे हैं। और ध्यान दें कि परिवर्तनीय नाम 'इनपुट' और' मान' कोई फर्क नहीं पड़ता - केवल आदेश करता है। आप अक्सर लोगों को 'इंडेक्स' शामिल करेंगे, या वे 'i' और 'v' जैसे विभिन्न नामों के तहत उपयोग करेंगे। – Sampson

+0

तो आखिरी उदाहरण में, "मान" "यह" जैसा ही है? – Andy

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