2016-03-25 5 views
2

Wenn ich eine jQuery-Funktion auf einem einzigen Element ausgeführt werden soll, der die Klasse .pizza hat, wie ich dies tun:Unterschied zwischen der Verwendung von eq (0) und nicht mit ihm

$('.pizza').hide(); 

Was ist der Unterschied zwischen dem, und mit first() or eq(0)?

$('.pizza').eq(0).hide(); 

Meine Frage kommt, weil ich das Element in eine Variable zwischenspeichern möchte es oft zu verwenden, und ich weiß nicht, ob es eine bessere Praxis zu tun ist:

var element_pizza=$('.pizza').eq(0); 

Oder einfach einfach:

var element_pizza=$('.pizza'); 

Hinweis: Wenn ich auf einem einzigen Element bedeuten, ich meine, dass es nur ein Element mit der Klasse Pizza in der DOM ist.

Danke für Ihre Zeit.

+1

Wenn Sie ein einzelnes Element mit einer Klasse haben, brauchen Sie 'eq (0)' an dieser Stelle nicht zu verwenden. Das ist einfach unnötig. Und das kostet Sie zusätzliche Funktionsaufrufe. –

+2

Wenn es nur ein Element mit der Klasse .pizza gibt, würde ich vorschlagen, $ ('. Pizza') zu verwenden. Hide(); weil $ ('. pizza'). eq (0) .hide(); wird verwendet, um das 0. Element von einer Menge abzugleichen. Aber in Ihrem Fall haben Sie keine Elemente, stattdessen haben Sie nur ein Element. – koolhuman

+1

@koolhuman Hat er nicht eine Reihe von Elementen, nur eine Set-Größe von '1'? Es wird immer noch als jQuery-Array zurückgegeben. –

Antwort

5

Es gibt keinen Unterschied, wenn das Set nur eine Übereinstimmung enthält.

Mit .eq() würde nur eine bestimmte Übereinstimmung aus einer Menge ausgewählt werden. Wenn die Menge ein Element hat, sind sie gleichwertig.

In der Tat ist es eine Verschwendung .eq(0) zu verwenden, wenn die Menge ein Element enthält, weil dadurch ein neues jQuery-Objekt erstellt wird.

+2

Referenz für was @Travis gesagt hat. https://api.jquery.com/eq/ –