3

我正在尝试将一个类添加到特定类中 tr 内的第一个 td 。但是由于某种原因,它仅将此类添加到第一个 tr 中的第一个 td - 而不是每个 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>
4

3 回答 3

5

在我看来,您正在使用一种复杂的手动方式来查找要将类添加到的 td。我相信使用 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 并将类添加到其中。

于 2009-06-03T14:28:58.643 回答
2

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

于 2009-06-03T14:28:23.730 回答
2

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

$('#gridFormInformation tr td:first-child').addClass('leftbord');
于 2012-10-21T15:52:27.160 回答