我正在寻找某种 CSS 选择器,它只会从只有这两个特定类而没有其他内容的表中选择某些单元格。为了更清楚起见,这里有一个示例。
因此,在此表中,我想从行中选择单元格 A 和 D 进行样式设置,但选择它们的唯一可区分方法是它们除了 .abc 和 .xyz 之外没有任何类。所以本质上我需要过滤掉任何具有任何其他类的单元格,即.def、.ghi。
<tr>
<td class="abc xyz">A</td>
<td class="abc xyz def">B</td>
<td class="abc xyz ghi">C</td>
<td class="abc xyz">D</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
现在我知道我可以使用 not 选择器来处理它,但是这些类从外部源注入到表中,并且可以添加新类,我真的不想继续添加到不断增长的要忽略的类列表中。
td.abc.xyz:not(.def),
td.abc.xyz:not(.ghi) {
/* Style to apply */
}
Run Code Online (Sandbox Code Playgroud)
因此,如果有人能为我指明正确的方向,找到任何有帮助的事情,我将不胜感激。
您可以考虑属性选择器,但要注意空格和顺序:
[class="abc xyz"],
[class="xyz abc"] {
color:red;
}Run Code Online (Sandbox Code Playgroud)
<table>
<tr>
<td class="abc xyz">A</td>
<td class="abc xyz def">B</td>
<td class="abc xyz ghi">C</td>
<td class="abc xyz">D</td>
<td class="xyz abc">D</td>
<td class="abc xyz ">this will fail</td>
</tr>
</table>Run Code Online (Sandbox Code Playgroud)
如果你可以添加一些JS,你可以使用避免空格问题trim
var td=document.querySelectorAll('td');
for(var i=0;i<td.length;i++)
td[i].className=td[i].className.trim();Run Code Online (Sandbox Code Playgroud)
[class="abc xyz"],
[class="xyz abc"] {
color:red;
}Run Code Online (Sandbox Code Playgroud)
<table>
<tr>
<td class="abc xyz">A</td>
<td class="abc xyz def">B</td>
<td class="abc xyz ghi">C</td>
<td class="abc xyz">D</td>
<td class="xyz abc">D</td>
<td class="abc xyz ">this will be good</td>
</tr>
</table>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |