<div id="owner">
<!-- ...other parent elements -->
<div class="parent one"> <!-- parent lvl 1 -->
<div class="child one"> <!-- child lvl 1 -->
<!-- ...other parent elements -->
<div class="parent two"> <!-- parent lvl 2 -->
<div class="child two"></div> <!-- child lvl 2 -->
<div class="child two"></div>
<div class="child two"></div>
</div>
</div>
<div class="child one"></div>
<div class="child one"></div>
<div class="child one"></div>
</div>
</div>
var el = document.getElementById("owner");
el && el.querySelectorAll('.parent .child');
**重要提示:**类名“one”和“two”仅用于视觉目的,并不存在。
在结果中,我们将得到7个div.child节点。如何创建只从“第一个lvl”中选择子级的选择器(我们最终得到4个div.child.one)。
**重要:**这是一个简单的例子,但真实的上我们不知道div.parent.one在div#owner中的深度,同样适用于div.parent.two
也许可以用ExtJS?
var el = Ext.get('#owner');
el.down('.parent .child'); //does not work, returns all elements as above
3条答案
按热度按时间kt06eoxx1#
您可以使用以下命令:
使用
>
可以指定父元素的直接子元素。h7wcgrx32#
@kkris1983此CSS选择器将仅适用于未嵌套在其他.child中的.child
对于.parent更复杂的情况:
这样,您就可以只为第一次出现的子代创建选择器。适用于任何级别的嵌套和中间标记。https://codepen.io/doc_ss/pen/xxyYMaP
ehxuflar3#
试试这个。你使用了outerdiv名称也父改变外部div名称