2010-04-25 15 views
5

Wie kann ich eine Funktion erstellen, die aussieht wie die jquery Callback $Wie erstellt man eine eigene jQuery-ähnliche Funktion in JavaScript?

Sagen wir, ich möchte ein Element mit ID = "Mydiv" aufrufen.

ich möchte es nennen können, wie

var div = $("mydiv").value; 

Ich denke, die Funktion aussehen sollte

function $(element) 
{ 
    return document.getElementById(element); 
} 

Ist das der richtige Weg, es zu tun, oder bevorzugen Sie einen anderen Weg löse es?

+13

Also kommt Bob vorbei, um Code anzusehen, der in seinem Schoß gelandet ist und entdeckt, dass er eine '$' Funktion benutzt. "% $ @ £%!", Seufzt er. "Ist das jQuery? Nein. Vielleicht ist prototype.js irgendwo drin? Oh, es ist eine benutzerdefinierte Routine. Warum können Leute ihren Variablen keine sinnvollen Namen geben?" – Quentin

+2

omg benutze jQuery bereits. –

+0

Benennen Sie die Funktion wie getElem ("id"), wenn Sie document.getElementById ("id") verkürzen möchten. Ich habe sowas schon mal geschrieben und einen optionalen Kontextparameter für iframes etc. getElem ("id", context) hinzugefügt. Das war bevor ich jQuery entdeckte. Die Verwendung von $ wäre für jeden, der Ihren Code liest, einfach verwirrend. –

Antwort

9

Sie können eine von drei Möglichkeiten:

lokalen Bereich:

function $(element) 
{ 
    return document.getElementById(element); 
} 

oder

var $ = function(element) 
{ 
    return document.getElementById(element); 
} 

oder wenn Sie es brauchen in globalen Bereich definiert werden :

window.$ = function(element) 
{ 
    return document.getElementById(element); 
} 

Wenn Sie jQuery eingeschlossen haben, überschreibt das Definieren von $ im globalen Gültigkeitsbereich es. Verwenden Sie , um dies zu vermeiden.

-1

jQuery gibt tatsächlich ein benutzerdefiniertes Objekt zurück, so dass Sie $ ('# id') aufrufen können. SomeJqueryFunction(). Wenn Sie einfach eine Verknüpfung für document.getElementById wünschen, genügt

sollte ausreichen.

+3

Scheitert in vielen Browsern. Denken Sie daran, dass "this" nicht gesetzt wird, wenn Sie eine Methode aus einem Objekt extrahieren und dann von der jetzt nicht gebundenen Referenz aufrufen. Wenn Sie '$' aufrufen, wird das richtige 'document'-Objekt nicht an die' getElementById'-Funktion übergeben. – bobince

Verwandte Themen