Ich habe eine Menge LIs in einer UL, und jede hat eine eindeutige ID.
Was ist der beste Weg, um bei zwei IDs die beiden entsprechenden LIs auszuwählen, und alle LIs dazwischen?
Vielen Dank!
Ich habe eine Menge LIs in einer UL, und jede hat eine eindeutige ID.
Was ist der beste Weg, um bei zwei IDs die beiden entsprechenden LIs auszuwählen, und alle LIs dazwischen?
Vielen Dank!
Nick Craver
Sie können es so machen:
$('#id').nextUntil('#id2').andSelf().add('#id2')
Es ist wichtig, das zu beachten .nextUntil()
tut nicht schließt das Element ein, bis zu dem es geht, es stoppt mit dem davor. Um dieses Element hinzuzufügen, müssen Sie anrufen .add(selector)
am Ende.
Du brauchst auch eine .andSelf()
die einzubeziehen Erste Element
Aktualisierung August 2017
jQuery-Methode .andSelf()
ist jetzt in jQuery 1.8+ veraltet, verwenden Sie .addBack()
stattdessen die erste Auswahl wieder hinzuzufügen. Ebenfalls,.prevUntil()
kann verwendet werden, wenn das letzte Element (#id2) das erste Element (#id1) in der Auswahl ersetzt. Vergleichen.index()
für beide Elemente, um ihre Reihenfolge im Dokument zu bestimmen.
@jAndy – .addSelf()
würde die ursprüngliche ID enthalten, nicht das Endelement, das Sie immer noch benötigen .add()
für die End-ID
– Nick Craver
23. April 2010 um 12:09 Uhr
@Nick: das ist genau das, was er will.
– jAndy
23. April 2010 um 12:10 Uhr
@jAndy wenn du li 1, 2, 3, 4 hast, ohne die .add()
4 wird NICHT enthalten sein, .nextUntil()
ist nicht inklusive. Aus den Dokumenten: „Das neue jQuery-Objekt, das zurückgegeben wird, enthält alle folgenden Geschwister bis einschließlich desjenigen, das mit dem übereinstimmt .nextUntil()
Wähler.”
– Nick Craver
23. April 2010 um 12:11 Uhr
Ich weiß, ich wollte es nicht anhängen, nur um es in den Ausdruck einzufügen
– jAndy
23. April 2010 um 12:12 Uhr
Dies funktioniert nur, wenn #id vor #id2 steht. Mehr hier
– Dziamid
27. September 2013 um 9:16 Uhr
jAndy
http://api.jquery.com/nextUntil/
Bei einem Selektorausdruck, der einen Satz von DOM-Elementen darstellt, wird die
.nextUntil()
Die Methode durchsucht die Nachfolger dieser Elemente im DOM-Baum und stoppt, wenn sie ein Element erreicht, das mit dem Argument der Methode übereinstimmt. Das neue jQuery-Objekt, das zurückgegeben wird, enthält alle folgenden gleichgeordneten Objekte bis einschließlich demjenigen, das mit dem übereinstimmt.nextUntil()
Streit.Wenn der Selektor nicht übereinstimmt oder nicht angegeben wird, werden alle folgenden Geschwister ausgewählt; in diesen Fällen werden die gleichen Elemente wie in ausgewählt
.nextAll()
-Methode funktioniert, wenn kein Filterselektor bereitgestellt wird.Ab jQuery 1.6Ein DOM-Knoten oder ein jQuery-Objekt kann anstelle eines Selektors an die übergeben werden
.nextUntil()
Methode.Die Methode akzeptiert optional einen Auswahlausdruck für ihr zweites Argument. Wenn dieses Argument angegeben wird, werden die Elemente gefiltert, indem geprüft wird, ob sie damit übereinstimmen…
nextUntil berücksichtigt nicht das erste und letzte Element, wie es OP erfordert.
– Miguelcobain
17. Oktober 2015 um 11:07 Uhr
Zur Auswahl der Alle LIs zwischen UL
$(document).ready(function(){
$("li[ID*=ids]").css("bacground-color","red");// contian common world ex ids1
});
Dies würde alle auswählen <li>
mit einem id
enthält ids
… das beantwortet die Frage überhaupt nicht.
– Nick Craver
23. April 2010 um 12:15 Uhr
Nicht meine Ablehnung, aber basierend auf anderen Antworten, die ich heute Morgen gesehen habe … Sie müssen die Fragen etwas besser lesen, eine vom Thema abweichende oder völlig falsche Antwort ist selten hilfreich
– Nick Craver
23. April 2010 um 12:28 Uhr