14 Stimmen

jQuery, wie man mehrere zwischengespeicherte Elemente verwendet

Für mein Projekt verwende ich zwischengespeicherte Selektoren, um die Geschwindigkeit zu erhöhen und Verbesserungen zu sehen: (um die Suche innerhalb des Dokuments zu reduzieren)

var sel1 = $('#selector1');
var sel2 = $('#selector2');

wie kann ich in dieser Situation zwischengespeicherte Selektoren verwenden? zum Beispiel:

$('#selector1, #selector2').fadeTo(300, 1, 'linear');

Ich will nur meinen Code aufpolieren.

Ty :)

17voto

Jasper Punkte 75123

Sie können verwenden .add() zu "Elemente zur Menge der übereinstimmenden Elemente hinzufügen":

sel1.add(sel2).fadeTo(300, 1, 'linear');

Dokumente für .add() : http://api.jquery.com/add

.add() einnehmen kann:

  • einen Selektor
  • DOM-Elemente
  • jQuery-Objekte
  • und Selektoren mit Kontext ( $('<selector>', <context>) )

Sie können auch ein Array von DOM-Elementen an jQuery übergeben:

var one = $('#one')[0],
    two = $('#two')[0];

$([one, two]).fadeTo(300, 1, 'linear');

Hier ist eine Demo: http://jsfiddle.net/3xJzE/

UPDATE

Ich habe eine Übersicht über die drei verschiedenen Methoden erstellt, die derzeit zur Verfügung stehen: http://jsperf.com/jquery-fadeto-once-vs-twice (es scheint, dass die Verwendung eines Array-Selektors am schnellsten ist: $([one, two]).fadeTo... )

7voto

Emre Erkan Punkte 8332

Sie können verwenden .add() Methode dafür;

sel1.add(sel2).fadeTo(300, 1, 'linear');

Es wird gut sein, wenn Sie hinzufügen $ Präfix, wenn Sie Ihre Variablen benennen. Auf diese Weise können Sie sie von Standard-Javascript-Objekten unterscheiden. Dies ist also besser:

var $sel1 = $('#selector1');
var $sel2 = $('#selector2');

$sel1.add($sel2).fadeTo(300, 1, 'linear');

7voto

Dennis Punkte 31622

JQuery's hinzufügen.

sel1.add(sel2).fadeTo(300, 1, 'linear');

1voto

musefan Punkte 46810

Wenn Sie die Selektoren bereits gespeichert haben, wenden Sie das fadeTo einfach auf jeden einzelnen Selektor an. JQuery wird nur haben, um den Selektor sowieso zu parsen...

sel1.fadeTo(300, 1, 'linear');
sel2.fadeTo(300, 1, 'linear');

1voto

ShankarSangoli Punkte 68964

Versuchen Sie dies

sel1.add(sel2).fadeTo(300, 1, 'linear');

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X