jQuery-Selektoren: Wählen Sie zwei Elemente und alle Elemente dazwischen aus

Lesezeit: 3 Minuten

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!

Benutzeravatar von Nick Craver
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

Benutzeravatar von jAndy
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

1406640cookie-checkjQuery-Selektoren: Wählen Sie zwei Elemente und alle Elemente dazwischen aus

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy