我正在尝试创建一个简单的原型,我可以在这样的DIV上调用:
$('#mydiv').processHtml();
这就是我的尝试:
Object.prototype.processHtml = function() {
var html = this.html();
// call ajax....
}
但JavaScript抛出的异常是html()
不是一种方法。我尝试HTMLDivElement
代替Object
,但它没有帮助。有什么指针吗?
答案 0 :(得分:1)
您正在修改错误的原型 - 您正在尝试修改Object
的原型,但您必须修改jQuery的原型,因为这样做了#39; s 一个jQuery对象,而不是一个JavaScript对象。因此错误,因为常规JavaScript对象没有方法html
。
所有jQuery方法都附加到jQuery对象的fn
属性,因为fn
属性只是原型的别名:
jQuery.fn === jQuery.prototype
因此,要向jQuery对象的原型添加方法,您必须访问jQuery对象的fn
属性(原型):
jQuery.fn.processHtml = function() {
...
}
或$
:
$.fn.processHtml = function() {
...
}
这会将函数添加到原型中,并在jQuery对象的所有实例之间共享该方法:
$(selector).processHtml();