2013-02-22 8 views
15

Ich weiß nicht, ob es ein CSS-Selektor ist als die Linie unten (jQuery-Code), um das gleiche tun:Gibt es einen Standard-CSS-Selektor ähnlich wie: eq() in jQuery?

.tab_cadre_central .top:eq(0) table tbody tr td table tbody tr:eq(3) 

ich in CSS so etwas wie dies versucht habe:

.tab_cadre_central .top::nth-child(0) table tbody tr td table tbody nth-child:eq(3) { 
    display:none; 
} 

aber es hat nicht funktioniert.

+0

Um Ihren Fragetitel zu beantworten, nein, gibt es kein Standard-CSS-Äquivalent zu ': eq()' in jQuery. Siehe [jQuery-Unterschied zwischen: eq() und: nth-child()] (http://stackoverflow.com/questions/7039966/jquery-difference-between-eq-and-nth-child) – BoltClock

Antwort

33

Während jQuery :eq() verwendet 0-basierte Indizierung, :nth-child() verwendet 1-basierte Indizierung, so dass Sie Ihre Indizes entsprechend erhöhen müssen:

.tab_cadre_central .top:nth-child(1) table tbody tr td table tbody tr:nth-child(4) 

Aber Sie sollten wirklich darüber nachdenken, dass die Wähler Refactoring ...

⚠ Es ist erwähnenswert, dass, obwohl :eq() und :nth-child() kann sich ähnlich verhalten - sie sind sicherlich nicht das Gleiche. :eq() die n + 1 te Element in dem Satz auswählen, während :nth-child()alle Elemente im Satz wählen wird, dass die n ten Kind ihrer jeweiligen Eltern sind. ⚠

<div> 
    <span></span> 
    <span></span> 
</div> 
<div> 
    <span></span> 
</div> 

Der Selektor div span:nth-child(1) werden zwei Elemente holen, während nur eine div span:eq(0) auswählt.

+0

ich stimme zu, das tut schauen Sie ein wenig langweilig – kabuto178

+0

ja, tnks fr die Informationen ^^ – user2077308

+0

Das ist nicht der einzige Unterschied. In der Tat, wenn der HTML-Code nicht extrem eingeschränkt ist, kann dieser Selektor mehr Elemente als nötig zusammenbringen - oder * überhaupt nicht übereinstimmen *. Das OP muss sicherstellen, dass sein HTML tatsächlich mit beiden Selektoren übereinstimmt. – BoltClock

Verwandte Themen