/ / jQueryオブジェクトに新しいメソッドを追加する - javascript、jquery

新しいメソッドをjQueryオブジェクトにアタッチする - javascript、jquery

このようにDIVで呼び出すことができる単純なプロトタイプを作成しようとしています。

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

これは私が試したものです:

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

しかしJavaScriptは例外としてスローします html() 方法ではありません。私は試した HTMLDivElement の代わりに Object しかし、それは助けにはなりませんでした。任意のポインタ?

回答:

回答№1は1

あなたは「間違ったプロトタイプを修正しています - 修正しようとしています」 Objectのプロトタイプですが、jQueryのプロトタイプを変更する必要があります。 jQueryオブジェクトJavaScriptオブジェクトではありません。通常のJavaScriptオブジェクトにはメソッドがないため、エラーになります。 html.

すべてのjQueryメソッドは fn jQueryオブジェクトのプロパティ fn propertyはプロトタイプの単なる別名です。

jQuery.fn === jQuery.prototype

したがって、jQueryオブジェクトのプロトタイプにメソッドを追加するには、次のものにアクセスする必要があります。 fn jQueryオブジェクトのプロパティ(プロトタイプ)。

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

または $

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

これにより、関数がプロトタイプに追加され、jQueryオブジェクトのすべてのインスタンスでメソッドが共有されます。

$(selector).processHtml();