我的 HTML 文档中有一堆表格。有些单元格内部具有特定类别的跨度 (
.signs
);有些则不然。我需要专门为包含 .signs
的边框应用边框。 (这样做的目的是显示行和列的跨度有多大,所以我不能只将边框放在 .signs
本身上。)
我知道 CSS 选择器无法检查元素的子元素,只能检查其父元素。因此,我想编写一个 JavaScript 函数来查找每个包含
td
的 .signs
,并用一个特殊的类对其进行标记。然后 CSS 可以附加到该类。
最好的方法是什么?这似乎是一项应该有一个简单而明显的解决方案的任务。我的第一个想法是使用
document.getElementsByTagName
迭代所有 td
,然后使用 element.getElementsByClassName
看看里面是否有 .signs
,但是选择器可能有一些优雅的技巧,不需要那么多迭代。
(我目前没有在这个项目中使用 JQuery,并且不希望仅仅为了这一项任务添加如此重的依赖项。)
https://developer.mozilla.org/en-US/docs/Web/CSS/:has
您可以使用
:has
选择器来查找包含跨度的单元格。
td:has(span.signs){
border: 1px solid gray;
}
<table>
<tr><td><span class="signs">signs</td><td>cell</td></tr>
</table>