我的网站中的组件对它们有操作,但仅限于未包含在其他元素中。
使用css选择器不喜欢
:not(.container) > .box
<body>
<main>
<div class="container">
<div class="box">kalle</div>
</div>
<div class="box">palle</div>
</main>
<div class="box">olle</div>
</body>
如果上下文是正文,将只找到'palle' 如果上下文是html,将会找到'palle'和'olle'
有人可以解释原因吗?
答案 0 :(得分:2)
这是因为您的body
和main
元素与:not(.container)
选择器匹配,因为它们都没有#{1}}&#34;容器&#34;。然后有一个直接class
孩子被选中。
.box
答案 1 :(得分:0)
当您使用$("body").find()
时,您正在搜索内部内容。这意味着正文已从搜索中排除,并且不会与:not(.container)
选择器匹配,然后<div class="box">olle</div>
不会与not(.container) > .box
选择器匹配,因为它与“{1}}选择器匹配。不在任何元素内。
当您使用html
在$("html").find()
元素内搜索时,:not(.container)
选择器与body
匹配,因为它是html
的子元素,并且所以<div class="box">olle</div>
与:not(.container) > .box
选择器匹配,因为它位于正文中。