Wie weise ich jeder ersten Zelle jeder Zeile in einer Tabelle einen Stil zu?
$("#myTable tr td:first").addClass("black");
Wie weise ich jeder ersten Zelle jeder Zeile in einer Tabelle einen Stil zu?
$("#myTable tr td:first").addClass("black");
Devin Burke
Verwenden Sie die :first-child
Pseudo-Klasse statt :first
.
$("#myTable tr td:first-child").addClass("black");
Das :first
Die Pseudo-Klasse wählt tatsächlich das erste Element aus, das in Ihrer Liste zurückgegeben wurde. Zum Beispiel, $('div span:first')
würde zurückkehren nur die allererste Spanne unter dem ersten div, das zufällig zurückgegeben wurde.
Das :first-child
Die Pseudo-Klasse wählt das erste Element unter einem bestimmten Elternelement aus, gibt jedoch so viele Elemente zurück, wie es erste untergeordnete Elemente gibt. Zum Beispiel, $('table tr td:first-child')
gibt die erste Zelle jeder einzelnen Zeile zurück.
Als Sie verwendet haben :first
es wurde nur die erste Zelle der ersten Zeile zurückgegeben, die zufällig ausgewählt wurde.
Weitere Informationen finden Sie in der jQuery-Dokumentation:
Du warst ziemlich nah dran, ich denke alles was du brauchst ist :first-child
Anstatt von :first
also etwa so:
$("#myTable tr td:first-child").addClass("black");
so was:
$("#myTable tr").each(function(){
$(this).find('td:eq(0)').addClass("black");
});
Diese Methode ist etwas weniger effizient, da Sie eine Schleife verwenden, a find
und das Erstellen einer Funktion, während durch die Verwendung von einfach die :first-child
Pseudo-Klasse fügen Sie nicht viel Verarbeitung hinzu, die nicht bereits in seinem ursprünglichen Code verwendet wurde. Es ist aber trotzdem eine schöne Alternative.
– Devin Burke
27. Mai 2011 um 16:50 Uhr
@Justin Satyr was denkst du verwendet jQuery? Ein Zauberstab?
– Teneff
1. Juni 2011 um 6:55 Uhr
Nein, mir ist bewusst, dass jQuery all diese Dinge hinter den Kulissen verwendet, aber (a) ich würde erwarten, dass die Verwendung eines einzelnen Selektors schneller ist als die Verwendung eines einzelnen Selektors UND a find
-Anweisung, und (b) es ist hinsichtlich der Codemenge zumindest effizienter, einen einzelnen Selektor zu verwenden.
– Devin Burke
1. Juni 2011 um 13:46 Uhr
$("#myTable tr").find("td:first").addClass("black");
Versuchen:
$("#myTable td:first-child").addClass("black");
Ja. :o) Hoppla. Ich werde es so belassen, falls jemand eine Möglichkeit haben möchte, die erste Zelle einer Tabelle schwarz zu haben.
– stefgosselin
27. Mai 2011 um 17:09 Uhr
Ja. :o) Hoppla. Ich werde es so belassen, falls jemand eine Möglichkeit haben möchte, die erste Zelle einer Tabelle schwarz zu haben.
– stefgosselin
27. Mai 2011 um 17:09 Uhr