jquery - 如何使用 jQuery 在每个表格单元格中设置增量 CSS 类?

标签 jquery css classname

我有一个通过数据库填充的表,它呈现如下(它可以有任意数量的列引用“时间”、5 列、8 列、2 列等):

<table id="eventInfo">
<tr> 
     <td class="name">John</td> 
     <td class="date">Dec 20</td> 
     <td class="**time**">2pm</td>
     <td class="**time**">3pm</td>
     <td class="**time**">4pm</td>
     <td class="event">Birthday</td>                
 </tr>
 <tr> 
     <td class="name">Billy</td> 
     <td class="date">Dec 19</td> 
     <td class="**time**">6pm</td>
     <td class="**time**">7pm</td>
     <td class="**time**">8pm</td>
     <td class="event">Birthday</td>         
</tr>  

使用 jQuery,我想遍历每个表格行并仅在“class='time'”的表格单元格上逐步设置一个额外的类名,这样结果将是:

<table id="eventInfo">
<tr> 
     <td class="name">John</td> 
     <td class="date">Dec 20</td> 
     <td class="**time** **timenum-1**">2pm</td>
     <td class="**time** **timenum-2**">3pm</td>
     <td class="**time** **timenum-3**">4pm</td>
     <td class="event">Birthday</td>                
 </tr>
 <tr> 
     <td class="name">Billy</td> 
     <td class="date">Dec 19</td> 
     <td class="**time** **timenum-1**">6pm</td>
     <td class="**time** **timenum-2**">7pm</td>
     <td class="**time** **timenum-3**">8pm</td>
     <td class="event">Birthday</td>         
</tr>  

我只能让它计算所有“class='time'”的表格单元格,而不是每个集合在其自己的表格行中。这是我用 jQuery 尝试过的:

$(document).ready(function() {

     $("table#eventInfo tr").each(function() {   
            var tcount = 0;
            $("td.time").attr("class", function() {
              return "timenum-" + tcount++;
            })
            //writes out the results in each TD
            .each(function() {
              $("span", this).html("(class = '<b>" + this.className + "</b>')");
            });    

        });

    });

不幸的是,这只会导致:

<table id="eventInfo">
<tr> 
     <td class="name">John</td> 
     <td class="date">Dec 20</td> 
     <td class="**time** **timenum-1**">2pm</td>
     <td class="**time** **timenum-2**">3pm</td>
     <td class="**time** **timenum-3**">4pm</td>
     <td class="event">Birthday</td>                
 </tr>
 <tr> 
     <td class="name">Billy</td> 
     <td class="date">Dec 19</td> 
     <td class="**time** **timenum-4**">6pm</td>
     <td class="**time** **timenum-5**">7pm</td>
     <td class="**time** **timenum-6**">8pm</td>
     <td class="event">Birthday</td>         
</tr>  

感谢您的帮助!

最佳答案

$("td.time") 选择 所有 类为 time 的表格单元格,而不仅仅是那些在该行中的单元格。添加对该行的引用作为(第二个)上下文参数,就像您在另一个 each 循环中所做的那样:$("td.time", this)

关于jquery - 如何使用 jQuery 在每个表格单元格中设置增量 CSS 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2744843/

相关文章:

javascript - 为什么我得不到 CSS 过渡效果?

jquery - 我们可以默认显示工具提示而不是通过鼠标悬停吗

jQuery 上一个下一个元素

php - 使用 jQuery 在 PHP/HTML 中输出相关的嵌套表

html - 使用 CSS 创建 div 的对 Angular 线顶部

javascript - 如何在 Facebook 垂直分享按钮旁边插入横幅

javascript - 如何检查 DOM 中 div 的所有类名是否具有带有 vanilla Javascript 的特定字符串?

javascript - 使用 jQuery 修改 CSS 类的名称 - 无法加载

javascript - 当我单击div框时,音频无法播放

python - 使用 selenium python 使用复合类解析 HTML 内容