/ / JQuery ऑब्जेक्ट के लिए एक नई विधि संलग्न करें - जावास्क्रिप्ट, jquery

JQuery ऑब्जेक्ट के लिए एक नई विधि संलग्न करें - जावास्क्रिप्ट, jquery

मैं एक सरल प्रोटोटाइप बनाने की कोशिश कर रहा हूं जिसे मैं इस तरह से एक डीआईवी पर कॉल कर सकता हूं:

$("#mydiv").processHtml();

मैंने यही कोशिश की:

Object.prototype.processHtml = function() {
var html = this.html();
// call ajax....
}

लेकिन जावास्क्रिप्ट अपवाद के रूप में फेंकता है html() एक विधि नहीं है। मैंने कोशिश की HTMLDivElement के बजाय Object लेकिन यह मदद नहीं की। किसी भी संकेत?

उत्तर:

उत्तर № 1 के लिए 1

आप गलत प्रोटोटाइप को संशोधित कर रहे हैं - आप संशोधित करने की कोशिश कर रहे हैं Object"प्रोटोटाइप है, लेकिन आपको jQuery के प्रोटोटाइप को संशोधित करना होगा क्योंकि वह है" एक jQuery वस्तुजावास्क्रिप्ट ऑब्जेक्ट नहीं है। इसलिए, त्रुटि, क्योंकि एक नियमित जावास्क्रिप्ट ऑब्जेक्ट doesn "t विधि है html.

सभी jQuery के तरीकों से जुड़े होते हैं fn jQuery वस्तु की संपत्ति क्योंकि fn प्रॉपर्टी केवल प्रोटोटाइप के लिए एक उपनाम है:

jQuery.fn === jQuery.prototype

इस प्रकार, jQuery ऑब्जेक्ट के प्रोटोटाइप में एक विधि जोड़ने के लिए, आपको एक्सेस करना होगा fn jQuery ऑब्जेक्ट की संपत्ति (प्रोटोटाइप), या तो:

jQuery.fn.processHtml = function() {
...
}

या $:

$.fn.processHtml = function() {
...
}

यह फ़ंक्शन को प्रोटोटाइप में जोड़ देगा और jQuery ऑब्जेक्ट के सभी उदाहरणों में विधि साझा करेगा:

$(selector).processHtml();