【问题标题】:How to add a class to td tag in bootstrap table using jquery如何使用 jquery 将类添加到引导表中的 td 标记
【发布时间】:2017-08-15 08:59:26
【问题描述】:

我在引导表中使用了下面的 jquery 代码

$(document).ready(function() {
    $('.table>tr>td').addClass('redBg');
    console.log('hg');    
});

我也试过这个

$(document).ready(function() {
    $('.table>tbody>tr>td').addClass('redBg');
    console.log('hg');

});

但是类不会添加到td标签中,

这是工作小提琴https://jsfiddle.net/udarazz/0vx7tjfq/

谁能帮我解决这个问题?

【问题讨论】:

  • $('.table tr > td').addClass('redBg')怎么样
  • @N.Ivanov 是的,它正在工作,但我需要指定表格。有没有其他方法可以做到这一点
  • 使用 jquery 时不需要在 html 定义的标签前面使用.. 只能与类名一起使用
  • @N.Ivanov 该表有一个名为table的类,如果你看一下sn-p里面
  • @Udara 尝试使用 $(".table tr:eq(1) > td").addClass("redBg");

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:

如果你省略它,许多浏览器会隐式添加一个<tbody> 容器来包装所有表行。您可以使用浏览器的开发人员工具/检查器进行验证。生成的结构:

<table>
    <tbody>
        <tr>
            <td></td>
        </tr>
    </tbody>
</table>

这意味着&lt;tr&gt; 不再是&lt;table&gt; 的直接子代,并且您的table &gt; tr 选择器将不再起作用。

要解决它,您可以:

  • 在您的标记中明确包含 &lt;tbody&gt; 并使用 table &gt; tbody &gt; tr &gt; td 选择器。
  • 不要使用直接子选择器:table tr &gt; td

工作JSFiddle

由于 Bootstrap 对偶数行和悬停的背景设置样式,您可能需要使您的类定义比 Bootstrap 的内置样式更具体:

table.table tr > td.redBg {
    background-color: red;
}

或者,您可以将 !important 添加到您的 CSS 以覆盖:

.redBg {
    background-color: red !important;
}

【讨论】:

    【解决方案2】:

    如果它是&lt;table&gt; 中的第一个&lt;td&gt;,您正在尝试添加要使用的类:

    $(document).ready(function() {
      $('.table tr td:first-child').addClass('redBg');
      console.log('hg');
    });
    

    https://jsfiddle.net/0vx7tjfq/5/

    【讨论】:

      【解决方案3】:

      更新的 JQUERY

      $(document).ready(function() {
          $('.table tr > td').addClass('redBg');
          console.log('hg');
      });
      

      【讨论】:

      • 大概是 OP 将后代选择器放在那里是有原因的。删除它们将更改样式的逻辑应用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2011-04-24
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多