【发布时间】:2015-01-25 21:05:38
【问题描述】:
我有一个表格来显示一些“时间表”:
+------------------------------------------+ KEY:
|NAME 00:00 00:20 00:40 01:00 01:20 etc XXXXXXX is actually 'itemA'
|item XXXXXXXXXXXX YYYYYYYYYYYYYYYYYYY YYYYYYY is actually 'itemAB'
|item YYYYYYYYYYYYYYYYYYY XXXXXXXXXXXX ZZZZZZZ is actually 'itemABC'
|item ------------ ZZZZZZZZZZZZ XXXXX ------- is actually null/blank
由以下组成:
<table>
<tr>
<th>NAME</th><th>00:00</th><th>00:20</th><th>00:40</th><th>01:00</th><th>01:20</th><th>etc</th>
</tr>
<tr id="row1">
<th>item</th>
<td colspan="2">itemA</td>
<td colspan="3">itemAB</td>
</tr>
<tr>
<th>item</th>
<td colspan="3">itemAB</td>
<td colspan="2">itemA</td>
</tr>
<tr>
<th>item</th>
<td colspan="2"></td>
<td colspan="2">itemABC</td>
</tr>
</table>
然后我使用脚本为每个项目创建颜色协调:
<script>
$("#row1 td:contains('itemA')").css("background-color", "lightBlue");
$("#row1 td:contains('itemAB')").css("background-color", "yellow");
$("#row1 td:contains('itemABC')").css("background-color", "lightGreen");
$("#row1 td:contains('')").css("background-color", "Black");
</script>
但是,执行此操作时,所有单元格都涂成黑色(我只想在此表中的单元格为空时出现黑色,没有其他原因)。
这个JSFIDDLE 展示了我想要的样子。 (不包括在本表中将空单元格变黑)
这个JSFIDDLE 显示了如果我包含脚本的最后一行会得到什么
所以对于整个表:this will be a design for end result,显然没有硬编码背景颜色。
编辑
所以,我有很多关于伪元素:empty 的指导,这非常有帮助。
但是,它并没有像我预期的那样工作,(在我看来,最后一列“等”也是“空的”,但永远不会被填充为黑色:
所以我最终得到:
+------------------------------+
| | | | | |ETC |
+------------------------------+
| | itemA | B |
+------------------------+
| | itemB | A | <-- this section here is 'part' of the table
+------------------------+ but never is physically 'defined' using a <td>
| |?|?|?|?|?| C ||?|?| tag
+------------------------+
^ ^
| |
| \
black background is there a way of making this 'undefined'
(as wanted) section also appear as being ':empty'
and hence have a 'background: black'
如图here
【问题讨论】:
-
把最后一个放在第一位。
-
请记住,
:contains寻找子字符串匹配,而不是整个内容的精确匹配。所以一切都包含''。 -
@jbutler483 无法完成。你需要有一个单元格,这样你就可以给它一些颜色。因此,要么更改 colspan 以使所有行具有相同的宽度,要么添加额外的 td 元素来填补空白。
-
@Barmar,作为一个问题,有没有办法获得完全匹配?
-
@lsp 我目前正在使用
<td colspan="58"></td>,但它看起来有点像 hack tbh。特别是当恕我直言,表格是矩形时
标签: jquery html css jquery-selectors