1

我在页面上设置了以下表格:

<div id="schedule">
    <table class="tableListings">
        <tbody>
            <tr class="tableDate">
                <td>...</td>
                <td>...</td>
            </tr>
        </tbody>
    </table>
    <table class="tableListings">
        <tbody>
            <tr>
                <td>...</td>
                <td>...</td>
                <td>...</td>
            </tr>
        </tbody>
    </table>
    <table class="tableListings">
        <tbody>
            <tr class="tableDate">
                <td>...</td>
                <td>...</td>
            </tr>
        </tbody>
    </table>
    <table class="tableListings">
        <tbody>
            <tr>
                <td>...</td>
                <td>...</td>
                <td>...</td>
            </tr>
        </tbody>
    </table>
</div>

我只需要在没有a类的s 上<td>设置背景颜色。<table><tr>"tableDate"

我怎样才能做到这一点?

如果我可以纯粹用 CSS 来做这件事会更好,但如果它更容易(或必要)我也可以使用 jQuery/代替。

4

5 回答 5

6

试试这个 CSS:{for simple case}

table tr:not(.tableDate) td{
   background-color:red;
}
于 2013-05-06T14:09:35.613 回答
3

如果我理解正确:

$('td').filter(function(){
    return !$(this).closest('table').find('tr.tableDate').length;
}).css('background-color', '#00f');

它选择所有td元素,然后根据最近的table祖先是否没有tr具有类的元素来过滤它们tableDate

但是,如果仅当父tr级具有该类时才需要(不检查该类table的任何tr内容):

$('td').filter(function(){
    return !$(this).closest('tr.tableDate');
}).css('background-color', '#00f');

我不确定(除了兼容性原因)为什么你不能只使用:not(.tableDate),而是为了跨浏览器兼容性:

td {
    background-color: #00f; /* special colour for non-.tableDate descendants */
}

.tableDate td {
    background-color: #fff; /* to override the 'special' colour for those td
                               elements that *are* within a .tableDate element */
}
于 2013-05-06T14:08:10.810 回答
2

尝试这个。它会帮助你......

        table tr:not(.tableDate) td{
            background-color: yellow;
        }
于 2013-05-06T14:15:31.140 回答
2

CSS

tr
{
 background-color:blue;   
}
.tableDate
{
     background-color:white;
}

工作演示http://jsfiddle.net/cse_tushar/X9rhS/

于 2013-05-06T14:10:19.507 回答
2

如果您想要仅使用 CSS(3) 的解决方案,请尝试:

table.tableListings tr:not(.tableDate) td {
    background-color:#999;
}

jsFiddle 示例

于 2013-05-06T14:12:13.197 回答