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

Posted

技术标签:

【中文标题】如何使用jQuery将Class添加到表内每个tr中的第一个td【英文标题】:How to addClass to the first td in every tr inside a table using jQuery 【发布时间】:2010-10-31 00:16:54 【问题描述】:

我正在尝试将一个类添加到特定类中 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>

【问题讨论】:

【参考方案1】:

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

【讨论】:

正是我想要的!谢谢:-)【参考方案2】:

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

【讨论】:

【参考方案3】:

这个方法是在表格gridFormInformation的每一行的第一个&lt;td&gt;后面加上leftbord

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

【讨论】:

以上是关于如何使用jQuery将Class添加到表内每个tr中的第一个td的主要内容,如果未能解决你的问题,请参考以下文章

表内输入的 JQuery 计算

使用 jQuery 将第一行添加到表中

如何使用 jquery 将带有 laravel 路由的 <a> 标签添加到表行

JQuery追加到表行的末尾而不是Tbody?

使用 jQuery 将新行追加到表中 [重复]

JQuery 将 thead 和 tbody 附加到表中