使用jQuery扩展DOM元素

pon*_*tic 6 javascript jquery

我想扩展一个DOM元素而不扩展所有这些元素.也就是说,我想要一个具有自己的方法和属性的自定义类,但也能够将其视为div.例如

 MyClass = function(){
    this.foo = "waaa";
 }
 MyClass.prototype.changeText = function(newtext){
    // if this extended $(document.createElement("div")) something
    // like this might be possible
    this.html(newtext);
 }
 MyClass.prototype.alertFoo = function(){
    alert(this.foo);
 }

 var m = new MyClass();
 $("body").append(m);
 m.changetext();
Run Code Online (Sandbox Code Playgroud)

这可能吗?

小智 6

您可以使您的类成为jquery生成的DIV元素的子类:

function MyClass (){
    this.foo = "waaa";
}
MyClass.prototype = $('<div/>');
MyClass.prototype.changeText = function(newtext){
    this.html(newtext);
}
MyClass.prototype.alertFoo = function(){
    alert(this.foo);
}

var m = new MyClass();
$("body").append(m);
m.changeText('appletree');
Run Code Online (Sandbox Code Playgroud)

  • 这非常适合扩展插件,覆盖函数,以便this.hide实际上是this.fadeOut.我在类中使用__proto__并将它传递给基本的jquery对象,如下所示:[link](http://pastebin.com/hFUnqTBQ) (2认同)