2009-06-26 12 views
7

Das hört sich vielleicht nach einer einfachen Frage an, aber ich kann einfach keine Antwort auf Google finden, wahrscheinlich weil der Suchbegriff eine Menge Irrelevanz zurückbringt.jQuery Selector AND operator

Ich möchte, dass ein jQuery-Selektor alle ungeraden Tabellenzeilen auswählt, die nicht in <thead> sind, und eine css-Klasse auf alle anwenden.

table.cp-ss-grid tr:odd 

Die obige Selektor alle ungeraden Zeilen in der Tabelle bringt richtig, aber die thead Zeilen (auf ie) umfasst

Wie würde ich in der Auswahl eines tun und, also so etwas wie:

table.cp-ss-grid tr:odd:not(thead) 

die oben nicht funktioniert und bringt immer noch die thead Reihen zurück

Irgendwelche Ideen?

Antwort

6

Warum nicht:

$('table.cp-ss-grid > tbody > tr:odd'); 

Um explizit den Körper zu wählen Reihen? Alle Browser fügen einen Tbody für Sie hinzu, wenn Sie keinen haben.

+3

Hinweis: Browser fügen tbody für HTML, nicht jedoch für XHTML hinzu. (XHTML dient als Text/HTML zählt als HTML - ein weiterer Grund, warum es eine schlechte Idee ist, das zu tun) – Quentin

0

wenn Sie th verwenden, um den Kopf und td zu anderen Zeilen, können Sie überprüfen, dass das haben Kind von td,

.children('td') 
0

table.cp-ss-grid tr:odd alle ungeraden ZeileB auszuwählen, die den Header nicht

, wenn Sie eine Farbe des Headers wird :nth-child(n)

11

Ein AND Selektor für jQuery angeben möchten zum Beispiel wäre: .classA.classB

Dies würde Elemente auswählen, die KlasseA und KlasseB haben.