CSS从具有特定属性的元素中选择第一个孩子
可以说我们有以下代码:
<node> <element bla="1"/>
<element bla="2"/>
<element bla="3"/>
<element bla="3"/>
<element bla="3"/>
<element bla="4"/>
</node>
您将如何选择第一个属性等于3的孩子?我在想,也许这可以做到:
element[bla="3"]:first-child
…但是没有用
回答:
该:first-child
伪类仅着眼于第一子节点,因此,如果第一个孩子是不是element[bla="3"]
,则选择一无所有。
没有类似的属性过滤器伪类。一种简单的解决方法是选择每个对象,然后排除第一个对象之后的内容
element[bla="3"] {}
element[bla="3"] ~ element[bla="3"] {
/* Reverse the above rule */
}
当然,这仅适用于样式。如果您要出于样式之外的目的挑选该元素(因为标记看起来是任意XML而不是HTML),则必须使用其他类似的东西document.querySelector()
:
var firstChildWithAttr = document.querySelector('element[bla="3"]');
或XPath表达式:
//element[@bla='3'][1]
以上是 CSS从具有特定属性的元素中选择第一个孩子 的全部内容, 来源链接: utcz.com/qa/434834.html