我正试图通过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始终保持一致性。
如果我误解了问题的第一个版本,我很抱歉。
我的代码有什么问题?
答案 0 :(得分:3)
你有没有理由不使用:
$('.some_class_for_rows td').css('border-bottom','1px solid #aaa');
你想要做的另一个猜测,因为你到目前为止只发布了接近伪代码的东西,在下面的例子中,我们迭代每个 {{1} } element,为属性tr
评估它,如果存在,则将类data-controlVariable
添加到上一行:
rowBeforeControlVariable
答案 1 :(得分:1)
像
这样的东西$(".some_class_for_rows").each(function() {
$('td', this).css('border-bottom', "1px solid #AAAAAA");
});
应该工作
答案 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");
}
}