2017-05-21 3 views
0

ich einen einfachen Prototyp zu erstellen Ich versuche, die ich auf einem DIV wie folgt aufrufen können:eine neue Methode zu jQuery-Objekt anhängen

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

Das ist, was ich versucht:

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

Aber JavaScript löst als Ausnahme aus, dass html() keine Methode ist. Ich habe versucht HTMLDivElement anstelle von Object, aber es hat nicht geholfen. Irgendwelche Zeiger?

+0

@AndrewLi Dank. Lass mich das versuchen. –

+0

Versuchen Sie, eine Prototyp-Methode für jQuery zu definieren? – PRAISER

Antwort

1

Sie modifizieren den falschen Prototyp - Sie versuchen, Object ‚s-Prototyp zu ändern, aber Sie haben jQuery Prototyp zu ändern, weil das ist ein jQuery-Objekt, kein Objekt JavaScript. Daher der Fehler, weil ein normales JavaScript-Objekt nicht über die Methode html verfügt.

Alle Methoden jQuery sind die fn Eigenschaft des Objekts jQuery angebracht, weil die fn Eigenschaft nur ein Alias ​​für den Prototyp ist:

jQuery.fn === jQuery.prototype 

So ein Verfahren zum Prototyp des jQuery-Objekts hinzuzufügen, müssen Sie die fn Eigenschaft (Prototyp) des Objekts jQuery zugreifen, entweder:

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

Oder die $:

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

Dies wird die Funktion zum Prototyp hinzuzufügen und das Verfahren in allen Instanzen eines Objekts jQuery teilen:

$(selector).processHtml(); 
Verwandte Themen