将班级应用于特定班级的家长

问题描述 投票:0回答:1

我的 HTML 文档中有一堆表格。有些单元格内部具有特定类别的跨度 (

.signs
);有些则不然。我需要专门为包含
.signs
的边框应用边框。 (这样做的目的是显示行和列的跨度有多大,所以我不能只将边框放在
.signs
本身上。)

我知道 CSS 选择器无法检查元素的子元素,只能检查其父元素。因此,我想编写一个 JavaScript 函数来查找每个包含

td
.signs
,并用一个特殊的类对其进行标记。然后 CSS 可以附加到该类。

最好的方法是什么?这似乎是一项应该有一个简单而明显的解决方案的任务。我的第一个想法是使用

document.getElementsByTagName
迭代所有
td
,然后使用
element.getElementsByClassName
看看里面是否有
.signs
,但是选择器可能有一些优雅的技巧,不需要那么多迭代。

(我目前没有在这个项目中使用 JQuery,并且不希望仅仅为了这一项任务添加如此重的依赖项。)

javascript html css css-selectors
1个回答
0
投票

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>

© www.soinside.com 2019 - 2024. All rights reserved.