Ich habe ein div mit zwei Tabellen. Ich möchte die Zeilen nur aus der einen Tabelle mit N Zeilen auswählen.JQuery Selektor zu Tabelle mit N Zeilen
In XPath würde ich verwenden:
//div[@class="div1"]/table[count(tr) = 2]/tr
Gibt es einen jQuery-Selektor Ausdruck, der das Gleiche tun?
Hier ist der HTML-Snippet:
<div>
<div class="div1">
<ul>
<li>Line 1</li>
</ul>
<ul>
<li>Line 1</li>
<li>Line 2</li>
</ul>
</div>
</div>
Ich habe gehofft, dies in einem einzigen jQuery-Selektor Ausdruck getan werden könnte (zum Beispiel in diesen Interactive JQuery Tester verstanden). Mein Ausgangspunkt ist:
'div.div1 ul li'
sondern wählt auch die Reihen von der ersten Tabelle, die nur 1 Zeile hat.
Natürlich ist der "richtige Weg", dies zu tun, IDs oder etwas anderes zum HTML hinzuzufügen, so dass die Tabelle eindeutig identifiziert werden kann. In diesem Fall habe ich jedoch keine Kontrolle über den HTML-Code . Der einzige Weg, ich kann sagen, welche der mehreren Tabellen aus der Anzahl der Zeilen zu verwenden ist.
Offensichtlich ist mein HTML-Schnipsel nicht für eine
Antwort
Ja, Sie können dies mit einem einzigen jQuery-Selektor tun.
In Ihrem Fall könnten Sie einfach die
:has()
selector kombinieren, die:eq()
selector und die:last-child
pseudo class um einul
Element auszuwählen, die zweili
Kinder Elemente. Beachten Sie, dass der Selektor:eq()
einen Index akzeptiert, der auf Null basiert (was bedeutet, dass wir einen Index von1
verwenden würden, um das zweiteli
Element auszuwählen). Die:last-child
Pseudoklasse wird dann verwendet, um sicherzustellen, dass das zweiteli
tatsächlich das letzte untergeordnete Element ist.Snippet:
Alternativ können Sie auch die
:nth-child()
pseudo class auch nutzen.Snippet:
Quelle
2017-02-25 21:09:38
Verwandte Themen