Ja, .eq()ist besser für die Frage des OP geeignet. :eq()wird innerhalb des Zeichenfolgenparameters to verwendet $, während .eq()es sich um eine Methode für ein vorhandenes jQuery-Objekt handelt.
mjswensen
55
Ich schwöre, ich muss das alle nachschlagen . Single . Zeit .
ivarni
3
@JoelWorsham Hängt vom gewünschten Verhalten ab. $('select').find('option').eq(n)ignoriert grundsätzlich die Gruppierung und erhält alle Optionen als Ganzes. Wenn Sie es pro Gruppe wollen, ist so etwas notwendig:$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
Dykam
4
"Warum nicht zuerst die (kurze) Auswahlseite durchsuchen?" - Weil "eq" ein sehr schlechter Name ist und ich ihn regelmäßig überspringe, da eq für mich Vergleich bedeutet ....
mmlac
309
Sie können den : eq- Selektor verwenden, zum Beispiel:
$("td:eq(2)").css("color","red");// gets the third td element
Ich suchte nach Slice, war mir aber nicht sicher, wie ich suchen sollte. Vielen Dank, dass Sie über die Anforderungen der ursprünglichen Frage hinausgehen.
Samik R
4
Für Leute, die über diese Antwort stolpern, ist es hilfreich zu beachten, dass der n-te Kind-Selektor auf 1 basiert, während: eq oder .eq () auf 0 basieren
Sudhanshu Mishra
1
Sie sollten .eq()anstelle von :eq()tatsächlich verwenden. Leichte Leistungssteigerung.
Wenn Sie das jquery-Objekt bereits in einer Variablen haben, können Sie es auch einfach als normales indiziertes Array behandeln, ohne jquery zu verwenden:
var all_rows = $("tr");for(var i=0; i < all_rows.length; i++){var row = all_rows[i];//additionally, you can use it again in a jquery selector
$(row).css("background-color","black");}
Obwohl das obige Beispiel in keiner Weise nützlich ist, zeigt es, wie Sie von jquery erstellte Objekte als indizierte Arrays behandeln können.
Richtig, und noch ein (hoffentlich nützlicher) Hinweis: Wenn die Zeile eine Liste von <select>Elementen enthält und Sie das ausgewählte Combobox-Element möchten, verwenden Sie$(row).val();
Matt
2
Wenn ich Ihre Frage richtig verstehe, können Sie die get-Funktion immer wie folgt umbrechen:
Wenn also die obige Codeschleife ausgeführt wird und wir möchten, dass ein bestimmtes Feld ausgewählt wird, müssen wir die jQuery-Auswahl verwenden, die nur das erwartete Element aus der obigen Schleife auswählen kann, so dass Code sein wird
Für Iterationen mit einem Selektor scheint dies jedoch keinen Sinn zu ergeben:
var some = $('...');for( i = some.length -1; i>=0;--i ){// Have to transform in a jquery object again://var item = $( some[ i ]);// use item at will// ...}
"$ (function () {" Im ersten Herbst habe ich eine anonyme Funktion erstellt, die automatisch ausgelöst wurde. Darin fand ich drei Eltern-Div mit Geschwistern. Dann iterierte ich in allen 3 Eltern-Div und überprüfte die Länge jeder Kinderlänge. Wie ich feststellen kann, ob es sich um ein letztes Div im übergeordneten Div handelt oder nicht. Jetzt alarmiere ich das letzte Div-HTML aller 3 Haupt-übergeordneten Div.
Sanjay Verma
Sie können Ihre Antwort bearbeiten , anstatt Informationen in Kommentaren
.eq()
stattdessen sein:eq()
?.eq()
ist besser für die Frage des OP geeignet.:eq()
wird innerhalb des Zeichenfolgenparameters to verwendet$
, während.eq()
es sich um eine Methode für ein vorhandenes jQuery-Objekt handelt.$('select').find('option').eq(n)
ignoriert grundsätzlich die Gruppierung und erhält alle Optionen als Ganzes. Wenn Sie es pro Gruppe wollen, ist so etwas notwendig:$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
Sie können den : eq- Selektor verwenden, zum Beispiel:
Oder die Funktion eq (int) :
Denken Sie auch daran, dass die Indizes auf Null basieren.
quelle
:nth()
Selektor verwenden - nicht zu verwechseln mit:nth-child()
Wenn Sie die Kontrolle über die Abfrage haben, die das jQuery-Objekt erstellt, verwenden Sie
:eq()
Wenn Sie keine Kontrolle darüber haben (z. B. wenn es von einer anderen Funktion oder etwas anderem übergeben wird), verwenden Sie
.eq()
Oder wenn Sie einen Abschnitt davon möchten (z. B. das dritte, vierte und fünfte Element), verwenden Sie
.slice()
quelle
.eq()
anstelle von:eq()
tatsächlich verwenden. Leichte Leistungssteigerung.Ich denke, Sie können dies verwenden
Es findet das zweite li in jeder übereinstimmenden ul und notiert es.
quelle
.eq () - Eine Ganzzahl, die die 0-basierte Position des Elements angibt.
Ex:
Betrachten Sie eine Seite mit einer einfachen Liste:
Wir können diese Methode auf die Liste der Listenelemente anwenden:
Für weitere Informationen: .eq ()
quelle
Wenn Sie das jquery-Objekt bereits in einer Variablen haben, können Sie es auch einfach als normales indiziertes Array behandeln, ohne jquery zu verwenden:
Obwohl das obige Beispiel in keiner Weise nützlich ist, zeigt es, wie Sie von jquery erstellte Objekte als indizierte Arrays behandeln können.
quelle
<select>
Elementen enthält und Sie das ausgewählte Combobox-Element möchten, verwenden Sie$(row).val();
Wenn ich Ihre Frage richtig verstehe, können Sie die get-Funktion immer wie folgt umbrechen:
quelle
eq()
gibt Ihnen kostenlos.Wenn Sie ein bestimmtes Element / einen bestimmten Knoten oder ein bestimmtes Tag in einer Schleife abrufen möchten, z
Wenn also die obige Codeschleife ausgeführt wird und wir möchten, dass ein bestimmtes Feld ausgewählt wird, müssen wir die jQuery-Auswahl verwenden, die nur das erwartete Element aus der obigen Schleife auswählen kann, so dass Code sein wird
z.B
sowie durch andere Methode
Die erste Methode ist jedoch effizienter, wenn sie
HTML <tag>
einen eindeutigen Klassennamen hat.ANMERKUNG: Die zweite Methode wird verwendet, wenn im Zielelement oder Knoten kein Klassenname vorhanden ist.
Weitere Informationen finden Sie unter https://api.jquery.com/eq/.
quelle
Für Iterationen mit einem Selektor scheint dies jedoch keinen Sinn zu ergeben:
quelle
Live-Beispiel für den Zugriff auf und das Entfernen des N-ten Elements mit jQuery:
Wenn es ausgeführt wird, werden in der geordneten Liste zwei Elemente angezeigt: Erstes und Drittes. Der zweite war versteckt.
quelle
quelle