为什么这个jQuery选择器表达式中的空间相关

And*_* R. 1 javascript jquery

假设我有这个HTML片段(假设剩下的文档没有其他div):

<div>
    <p>Lorem ipsum dolor sit amet</p>
     <pre>1st</pre>
</div>
Run Code Online (Sandbox Code Playgroud)

使用jQuery我会期待这段代码......

$('div:has(pre) :eq(0)').css('background-color','red');
$('div:has(pre):eq(0)').css('color','green');
Run Code Online (Sandbox Code Playgroud)

将背景颜色设置为红色,将颜色设置为绿色<div>.换句话说,我希望两个jQuery选择器匹配包含单个div的同一组元素.但是第一个选择器似乎只匹配<pre>,而第二个选择器实际匹配<div>.

的jsfiddle

zzz*_*Bov 10

div:has(pre) :eq(0)使用后代选择器.另一个没有.

这是为了匹配CSS选择器的行为.