【发布时间】:2018-06-21 14:42:34
【问题描述】:
给定html:
<div data-root="A">
<div>Ignored</div>
<div data-child="B">
<div data-child="C" data-root="E">
<div data-child="F"></div>
<div data-child="G">
<div data-root="Q">
<div data-child="K"></div>
</div>
</div>
</div>
</div>
</div>
对于任何给定元素(根),我想查询所有填充了 data-child 属性且不属于另一个指定了 data-root 的元素的子元素。
样本结果:
- 数据根 A:数据子项:B、C
- 数据根 E:数据子项:F、G、Q
- 数据根 Q:数据子项:K
我通过调用root.querySelectorAll("[data-child]") 解决了这个问题,然后通过跟踪它到父元素来单独检查每个元素,同时检查是否有任何元素指定了data-root。它可以工作,但是代码对于它正在做的事情有点尴尬。理想情况下,我正在寻找一种无代码的声明性解决方案,任何人都可以为我的问题想出它吗?
【问题讨论】:
标签: html css-selectors selectors-api