/ / Wie man mit jQueryClass zum ersten td in jedem tr innerhalb einer Tabelle hinzufügt - jquery, html, jquery-selectors, html-table

Wie man mit jQuery eine Klasse zum ersten td in jeder tr innerhalb einer Tabelle hinzufügt - jquery, html, jquery-selectors, html-table

Ich versuche, eine Klasse zum ersten td innerhalb eines tr innerhalb einer bestimmten Klasse hinzuzufügen. Aber aus irgendeinem Grund fügt es diese Klasse nur dem ersten td im ersten tr hinzu - nicht dem ersten td in jedem tr

$("#appendTD").find("#gridFormInformation").children(0).children().each(
function() {
if ($("#appendTD").find("tr").filter(function() { return $(this).attr("class") == "ui-widget-content ui-subtblcell"; }).children("td:eq(0)").addClass("leftbord"));
}
);

Aber wenn ich das Obige durch Entfernen von "" td: eq (0) "ändere, wird diese Klasse zu jedem td in jedem tr hinzugefügt ... also was mache ich falsch?

Beispiel für das Markup unten

<td id="appendTD">
<table id="gridFormInformation">
<tbody>
<tr><th>1</th><th>2</th><th>3</th></tr>
<tr class="ui-widget-content ui-subtblcell"><td>1</td><td>2</td><td>3</td></tr>
<tr class="ui-widget-content ui-subtblcell"><td>1</td><td>2</td><td>3</td></tr>
<tr class="ui-widget-content ui-subtblcell"><td>1</td><td>2</td><td>3</td></tr>
</tbody>
</table>
</td>

Antworten:

5 für die Antwort № 1

Für mich sieht es so aus, als würden Sie eine komplizierte manuelle Methode verwenden, um die tds zu finden, zu denen Sie die Klasse hinzufügen möchten. Ich glaube, es wäre einfacher, jQuery-Selektoren zu verwenden, um Ihre tds zu finden.

Ersetzen

$("#appendTD").find("#gridFormInformation").children(0).children().each(
function() {
if ($("#appendTD").find("tr").filter(function() { return $(this).attr("class") == "ui-widget-content ui-subtblcell"; }).children("td:eq(0)").addClass("leftbord"));
}
);

mit

$("#gridFormInformation tr.ui-widget-content.ui-subtblcell").find("td:first").addClass("leftbord");

Dies würde alle trs finden und für jedes tr das erste td finden und die Klasse dazu hinzufügen.


2 für die Antwort № 2

Veränderung "td:eq(0) zu "td:first".


2 für die Antwort № 3

Diese Methode ist hinzuzufügen leftbord zum ersten <td> in jeder Zeile der Tabelle gridFormInformation:

$("#gridFormInformation tr td:first-child").addClass("leftbord");