如何使用某种样式更改tr内部的td单元格的颜色?
例如:
<tr style="display: table-row">
<td></td>
<td></td>
</tr>
到目前为止我已经完成了这项工作,但它并没有完全发挥作用:
if ($('.mydiv').css('display') == 'table-row') {
$(this).siblings('td').css("background-color", "white");
}
答案 0 :(得分:5)
我的第一个想法虽然未经测试,但却是:
$('td').filter(function(){
return this.parentNode.style.display == 'table-row';
}).css('background-color','#fff');
如上所述,这将选择所有td
元素,然后将其过滤为父tr
具有style="display: table-row;"
的元素;这确实要求tr
将样式设置为内联。然而,抛出更多jQuery,你可以实现同样的目标:
$('td').filter(function(){
return $(this).parent().css('display') == 'table-row';
}).css('background-color','#fff');
这将以相同的方式过滤,但在外部样式表中(或在文档的style
的{{1}}标记中)包含CSS集。
但是,我会减少DOM遍历并仅显式处理head
元素,并使用给定的类名来实现相同的目的:
tr
当然,它允许使用CSS:
$('tr').filter(function(){
return $(this).css('display') == 'table-row';
}).addClass('hasDisplayTableRow');
答案 1 :(得分:3)
你不能为一个风格做那个,你需要一个班级:
<tr style="display: table-row" class="myrow">
<td></td>
<td></td>
</tr>
然后你可以在css中设置样式:
tr.myrow td{
background-color: white
}
或者在jQuery中:
$("tr.myrow td").css({"background-color": "white"})
编辑大卫的回答表明这是有可能的。虽然它很聪明,但是类方法会更易于维护IMO
答案 2 :(得分:0)
比较内联样式并不总是一个好主意。
相反,为什么不将类添加到有问题的tr中,以便它更清晰。
.table-row{
display: table-row;
}
然后你可以使用这个
if ($('.mydiv').hasClass('table-row')) {
$(this).siblings('td').css("background-color", "white");
}
而不是<tr style="display: table-row">
尝试更改标记
<tr class="table-row">
答案 3 :(得分:0)
为什么不通过CSS执行此操作?这是我在JQuery中的表现。
$("tr[style='<your style value here>'] td").css("background-color", "white");