如何通过jQuery在tr标签中给出样式所有td标签?

时间:2012-06-23 15:51:41

标签: jquery

我正试图通过jQuery为特定表行中的单元格赋予样式。

问题是我需要逐行检查一个属性,如果我找到了我期望的东西,那么 BEFORE 行应该重新设置当前的样式。

我正在使用以下代码,但不是仅为行的单元格绘制边框,而是为表格中的每个单元格绘制它:

$(".some_class_for_every_row_in_the_table").each(function() {
    var control_variable = ... //This is the attribute
    if (control_variable) {
        $(previous_row).find('td').each(function() {$(this).css('border-bottom', "1px solid #AAAAAA")});
    }
    previous_row = this; 
...
})

这是表格的HTML:

<table>
    ...
    <tbody>
        <tr control_variable="...">
          <td>...</td>
        </tr>
        <tr control_variable="...">
          <td>...</td>
        </tr>
        ...
   </tbody>
</table>

control_variable获得正确的值,previous_row始终保持一致性。

如果我误解了问题的第一个版本,我很抱歉。

我的代码有什么问题?

5 个答案:

答案 0 :(得分:3)

你有没有理由不使用:

$('.some_class_for_rows td').css('border-bottom','1px solid #aaa');

JS Fiddle demo

你想要做的另一个猜测,因为你到目前为止只发布了接近伪代码的东西,在下面的例子中,我们迭代每个 {{1} } element,为属性tr评估它,如果存在,则将类data-controlVariable添加到上一行:

rowBeforeControlVariable

JS Fiddle demo

答案 1 :(得分:1)

这样的东西
$(".some_class_for_rows").each(function() { 
    $('td', this).css('border-bottom', "1px solid #AAAAAA");
})​;

应该工作

http://jsfiddle.net/NwWkk/

答案 2 :(得分:1)

$("table tr[control_variable=VALUE]").prev("tr").find("td").css( ... set your attribute ...);

请参阅http://jsfiddle.net/cranio/MvVgS/1/

这适用于控制变量的固定值。如果它们有所不同,您应该使用“.each()”。

答案 3 :(得分:0)

没有看到标记很难说,但我会说你可能在表格的每一行都有相同的类'some_class_for_rows'。

<table>
  <tr class="some_class_for_rows">
    <td>
    </td>
  </tr>
  <tr class="some_class_for_rows">
    <td>
    </td>
  </tr>
</table>

对于一行,您需要一些独特的目标,例如:

<table>
  <tr class="some_class_for_rows selected">
    <td>
    </td>
  </tr>
  <tr class="some_class_for_rows">
    <td>
    </td>
  </tr>
</table>

然后使用以下代码:

$('.some_class_for_rows.selected td').css('border-bottom','1px solid #aaa');

答案 4 :(得分:0)

我无法清楚地了解您的代码..但请尝试使用此代码...使用&#39;每个&#39;有时让我们困惑.....

如果您为所有&#39; tr&#39;拥有相同的班级名称,这将有所帮助。

var len=$('.some_class_for_rows').length;
for(i=0;i<len;i++)
{
 var control_variable = ... //This is the attribute
 if (control_variable)
{
 $('.some_class_for_rows').eq(i).prev('tr').find('td').
 css('border-bottom', "1px solid #AAAAAA");
}
}