【问题标题】:How to set the row class of a table based on cell content using jQuery?如何使用jQuery根据单元格内容设置表格的行类?
【发布时间】:2009-03-16 19:13:40
【问题描述】:

我有下表:

<table class="grid">
    <thead>
        <tr>
            <th>Name</th>
            <th>Status</th>
        <tr>
    </thead>
    <tbody>
        <tr>
            <td>Project 1</td>
            <td>Closed</td>
        <tr>
        <tr>
            <td>Project 2</td>
            <td>Open</td>
        <tr>
        <tr>
            <td>Project 3</td>
            <td>Closed</td>
        <tr>
    </tbody>
</table>

我正在尝试将我以前在代码隐藏中执行的一些 UI 代码移动到 jQuery。每当状态(第 2 列)列的值为打开时,我想更改 TR 元素的类。

用 jQuery 做这件事的最佳方法是什么?

【问题讨论】:

    标签: .net asp.net jquery


    【解决方案1】:
    $('tbody > tr', 'table.grid').filter(function() {
        return $(this).children('td').eq(1).text() == 'Open';
    }).addClass('open_tr');
    

    它在做什么:

    它正在选择table.grid 上下文的&lt;tbody&gt; 内的所有&lt;tr&gt; 元素。 filter 函数允许您根据返回的内容过滤元素,true 保留或 false 丢弃。因此,在过滤器中,我们获取 tr 的所有子项,获取第二个 &lt;td&gt;,并返回其文本是否等于 'Open' - 如果是,它将返回 true,我们可以保留父 @ 987654326@ 在选择器中。剩下的就是 &lt;tr&gt; 并带有 Open 状态,所以我们可以添加一个类来标记它们。

    【讨论】:

    • 感谢您的帮助!还是 jQuery 的新手!
    • 你可能应该在某处添加一个“返回”;)虽然很好
    • +1 获取详细说明。为什么至少和什么一样重要。
    【解决方案2】:

    我没有编写任何代码,因为您可以重复使用一些 jQuery 脚本,这些脚本允许您为表格行生成替代颜色 - 只需稍作修改。

    基本上,在页面加载时(用 jQuery 术语 - 准备好文档)

    1. 获取对表行的引用。
    2. 遍历行检查特定列的值。
    3. 如果符合您的要求,请更改行颜色。

    【讨论】:

      猜你喜欢
      • 2021-09-23
      • 1970-01-01
      • 2012-09-05
      • 2017-01-14
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      相关资源
      最近更新 更多