このように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();