Wählen Sie den ersten TD in jeder Zeile mit jQuery aus

Lesezeit: 2 Minuten

Wie weise ich jeder ersten Zelle jeder Zeile in einer Tabelle einen Stil zu?

$("#myTable tr td:first").addClass("black");

Benutzer-Avatar
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 :firstes 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 :firstalso 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 findund 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


1299290cookie-checkWählen Sie den ersten TD in jeder Zeile mit jQuery aus

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

Privacy policy