2011-08-29 12 views
16

मैं http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery पढ़ रहा था। और इन 2 कोड खंडों में this के उपयोग से भ्रमित हो गया।

 $(document).ready(function() { 
     $("#orderedlist").find("li").each(function(i) { 
     $(this).append(" BAM! " + i); 
     }); 
    }); 

    $(document).ready(function() { 
     // use this to reset several forms at once 
     $("#reset").click(function() { 
     $("form").each(function() { 
     this.reset(); 
     }); 
    }); 
    }); 

जब हम $(this) और this की ज़रूरत है? और उनके बीच क्या अंतर है? अग्रिम में धन्यवाद।

+3

संभावित डुप्लिकेट ["यह", "$ यह" और "$ (यह)" के बीच क्या अंतर है?] (Http://stackoverflow.com/questions/3889570/what-is-the-difference- बीच-यह-और-यह) – user113716

+1

@patrick: मुझे नहीं लगता कि यह एक डुप्लिकेट है। यह जवाब देने योग्य है कि इस विशेष कोड के एक हिस्से में '$ (यह) 'की आवश्यकता क्यों है, जबकि यह एक अलग हिस्से में आवश्यक है। – Blazemonger

+1

@ mblase75: ठीक है, मुझे लगता है कि मैं असहमत हूं। वह जवाब, जो ट्यूटोरियल पहले से समझाता है, उसके साथ यह एक डुप्लिकेट बनाता है। दूसरे प्रश्न के उत्तर पढ़ना इसे हल करना चाहिए। ट्यूटोरियल से: * "ध्यान दें कि '.each()' फ़ंक्शन में, 'यह' वास्तविक तत्व को संदर्भित करता है।" * – user113716

उत्तर

16

this डीओएम तत्व को ही संदर्भित करता है; $(this) एक jQuery ऑब्जेक्ट में तत्व को लपेटता है।

पहले उदाहरण में, आपको $(this) की आवश्यकता है क्योंकि .append() एक jQuery विधि है।

दूसरे उदाहरण में, reset() एक जावास्क्रिप्ट विधि है, इसलिए कोई jQuery wrapper की आवश्यकता नहीं है।

7

this स्वयं ही एक नियमित वस्तु है।

$(this)this लेता है और jQuery रैपर जोड़ता है ताकि आप ऑब्जेक्ट के साथ jQuery विधियों का उपयोग कर सकें।

3

this एक डॉम ऑब्जेक्ट को संदर्भित करता है। तो reset() एक फॉर्म DOM ऑब्जेक्ट का एक फ़ंक्शन है। दूसरी तरफ append() एक jQuery विधि है इसलिए इसे एक jQuery ऑब्जेक्ट द्वारा बुलाया जाना है, इसलिए $(this)

जब आप this$ के साथ घूमते हैं, तो आपको एक jQuery ऑब्जेक्ट वापस उस DOM ऑब्जेक्ट का प्रतिनिधित्व करता है।

2

आम तौर पर jQuery में, this प्रश्न में डोम तत्व का एक उदाहरण हो जाएगा, और $(this)this के चारों ओर एक jQuery वस्तु जो आप each() और val() की तरह सामान्य jQuery तरीकों देता है बनाता है।

1

यदि आपको कोड की उसी पंक्ति पर एक jquery फ़ंक्शन के साथ इसका पालन करना है तो आपको केवल $ (यह) चाहिए।

ex: $(this).find(...); $(this).val(); etc 

या अन्यथा आपको केवल this की आवश्यकता है।

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