如何使用jQuery将classClass添加到表中每个tr中的第一个td

时间:2009-06-03 14:24:07

标签: jquery html jquery-selectors html-table

我正在尝试在特定类中的tr内的第一个td中添加一个类。但由于某种原因,它只将此类添加到第一个tr中的第一个t - 而不是每个tr中的第一个td

$("#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"));
                }
            );

但是当我通过删除“”td:eq(0)来改变上面的内容时,它会将这个类添加到每个tr中的每个td ...所以我做错了什么?

下面的标记示例

<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>

3 个答案:

答案 0 :(得分:5)

在我看来,您正在使用复杂的手动方式来查找要添加类的tds。我相信使用jQuery选择器来查找你的tds会更容易。

替换

$("#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"));
            }
        );

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

这将找到所有的trs,并为每个tr找到第一个td并将该类添加到该文件中。

答案 1 :(得分:2)

'td:eq(0)更改为'td:first'

答案 2 :(得分:2)

此方法是将leftbord添加到表格<td>的每一行中的第一个gridFormInformation

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