2012-11-27 8 views
6

Also, habe ich einige JavaScript/jQuery, die wie folgt aussieht:Speichert ein jQuery-Element in einer Variablen, weil das Element bei der Verwendung erneut gesucht wird?

var $foo = $('#bar'); 
$foo.hide(); 

Ich habe unter der Annahme aus, dass jQuery auf dem angegebenen Selektor arbeitet und speichert das resultierende DOM-Element zum var $foo ... was, soweit ich sehen kann, wahr ist.

Führt jedoch das Aufrufen von $foo.hide() dazu, dass jQuery das Element #bar erneut sucht?

+0

nein ist es nicht ..... –

+0

Dies gilt als Best Practices. Sie sollten fast immer einen Verweis auf das jQuery-Objekt speichern, wenn Sie die Wiederverwendung planen. – troynt

Antwort

8

Nein, es wird nicht darauf verwiesen, wenn $ (elem) aufgerufen wird. Deshalb wird var verwendet, um Referenzen auf Elemente zu speichern. Es empfiehlt sich immer, Verweise auf var zu speichern, damit der nächste Zeitcode verwendet wird, alte Verweise verwendet werden und DOM nicht erneut gesucht werden muss.

//reference 
var a = $('#id'); 

//use 
a.hide(); 

//same reference, use again 
a.show(); 
+0

Der von Andrew bereitgestellte Code ist jedoch gültig. Die $ -Funktion gibt das jQuery-Objekt zurück, das einen Verweis auf das DOM-Element enthält und in jedem weiteren Punkt verwendet werden kann. Wenn Sie 'var foo = $ (" bar ") haben. foo.show(); 'Das Ergebnis wäre ein ** sichtbar ** . – Ash

+0

Ja, es ist ein gültiger Code :-) –

1

Von meinem Verständnis, das jQuery-Objekt als var Einstellung, speichert das Objekt, und deshalb wird es nicht die jedes Mal jQuery-Objekt neu erstellen Sie es verwenden müssen somehting auszuführen.

ein paar Artikel über diese, here's the first one I found off google

Ich denke jedoch $('#bar') direkt an document.getElementById (‚bar‘) bezieht sich also nicht viel Gebäude und deshalb ziemlich schnell, aber es ist schneller, wenn Sie eine Reihe von Objekten . $('.class tagType')

Verwandte Themen