javascript - jQuery: '$(यह)' और 'यह' के बीच क्या अंतर है?




this (5)

हाँ जब आप jQuery का उपयोग कर रहे हों तो आपको केवल $ () की आवश्यकता होगी। यदि आप डीओएम चीजों को करने में jQuery की मदद चाहते हैं तो इसे ध्यान में रखें।

$(this)[0] === this

असल में हर बार जब आप तत्वों का एक सेट प्राप्त करते हैं तो jQuery इसे एक jQuery ऑब्जेक्ट में बदल देता है। यदि आप जानते हैं कि आपके पास केवल एक परिणाम है, तो यह पहले तत्व में होगा।

$("#myDiv")[0] === document.getElementById("myDiv");

और इसी तरह...

मैं वर्तमान में इस ट्यूटोरियल के माध्यम से काम कर रहा हूं: jQuery के साथ प्रारंभ करना

नीचे दिए गए दो उदाहरणों के लिए:

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

पहले उदाहरण में नोटिस, हम प्रत्येक li तत्व के अंदर कुछ पाठ जोड़ने के लिए $(this) का उपयोग करते हैं। दूसरे उदाहरण में हम फॉर्म को रीसेट करते समय सीधे इसका उपयोग this हैं।

$(this) बहुत अधिक बार इस्तेमाल किया प्रतीत होता है।

मेरा अनुमान पहले उदाहरण में है, $() प्रत्येक li तत्व को एक jQuery ऑब्जेक्ट में परिवर्तित कर रहा है जो append() फ़ंक्शन को समझता है जबकि दूसरे उदाहरण में reset() को सीधे फॉर्म पर कॉल किया जा सकता है।

मूल रूप से हमें विशेष jQuery-केवल फ़ंक्शंस के लिए $() की आवश्यकता होती है।

क्या ये सही है?


हाँ, $(this) का उपयोग करके, आपने ऑब्जेक्ट के लिए jQuery कार्यक्षमता सक्षम की है। इसका उपयोग करके, इसमें केवल सामान्य जावास्क्रिप्ट कार्यक्षमता है।


$() jQuery कन्स्ट्रक्टर फ़ंक्शन है।

this आमंत्रण के डीओएम तत्व का संदर्भ है।

तो मूल रूप से, $(this) , आप this पैरामीटर के रूप में $() में पास कर रहे हैं ताकि आप jQuery विधियों और कार्यों को कॉल कर सकें।


jQuery का उपयोग करते समय, यह आमतौर पर $(this) का उपयोग करने की सलाह दी जाती है। लेकिन यदि आप जानते हैं (आपको सीखना और जानना चाहिए) अंतर, कभी-कभी यह केवल अधिक सुविधाजनक और उपयोग करने में तेज़ होता है। उदाहरण के लिए:

$(".myCheckboxes").change(function(){ 
    if(this.checked) 
       alert("checked"); 
});

से आसान और शुद्ध है

$(".myCheckboxes").change(function(){ 
      if($(this).is(":checked")) 
         alert("checked"); 
});

यह एक जावास्क्रिप्ट ऑब्जेक्ट और $ (यह) jQuery के साथ encapsulate करने के लिए प्रयोग किया जाता है।

उदाहरण =>

// Getting Name and modify css property of dom object through jQuery
var name = $(this).attr('name');
$(this).css('background-color','white')

// Getting form object and its data and work on..
this = document.getElementsByName("new_photo")[0]
formData = new FormData(this)

// Calling blur method on find input field with help of both as below
$(this).find('input[type=text]')[0].blur()

//Above is equivalent to
this = $(this).find('input[type=text]')[0]
this.blur()

//Find value of a text field with id "index-number"
this = document.getElementById("index-number");
this.value

or 

this = $('#index-number');
$(this).val(); // Equivalent to $('#index-number').val()
$(this).css('color','#000000')




this