jquery选择器中的空格是什么意思?

jquery选择器中的空格是什么意思?,jquery,jquery-selectors,Jquery,Jquery Selectors,今天在处理一些非常基本的Jquery时,我遇到了一个无法解释的反应,我希望你们中的一位能够向我解释导致这些结果的原因 所以我有一个DOM模型(这里简化) 我现在理解这里的代码是不正确的,正确的查找选择器应该是'div.Object:last',但这是我不理解的结果。当我执行第一个代码时,发生了以下情况: <div class="ObjectContainer"> <div class="Object"> <div index="1">s

今天在处理一些非常基本的Jquery时,我遇到了一个无法解释的反应,我希望你们中的一位能够向我解释导致这些结果的原因

所以我有一个DOM模型(这里简化)

我现在理解这里的代码是不正确的,正确的查找选择器应该是'div.Object:last',但这是我不理解的结果。当我执行第一个代码时,发生了以下情况:

<div class="ObjectContainer">
    <div class="Object">
        <div index="1">stuff</div>
    <div class="Object">
         <div>stuff</div>

东西
东西

有人能解释一下我的初始选择器是如何在子节点上设置属性的吗?

$('div.ObjectContainer')。find('div.Object:last')
会产生通配符效果。它查找psudo类为:last的任何子级。因此,它只是选择了div:last。它相当于
$('div.ObjectContainer')。find('div.Object div:last')
空格表示与子体匹配。对于每个空间,您将(至少)降低一个级别,并将选择器应用于先前选定元素的子元素

例如:

div.container.post
容器和
post
类匹配,同时:

div.container .post
…将使任何元素与类
post
相匹配,该类从
与类
容器
派生而来

这将匹配

,但也将匹配任何
.post
,无论其嵌套有多深:

<div class="container">
  <div>
    <div>
      <a class="post"> <!-- matched -->
    </div>
  </div>
</div>

使用jQuery,您可以通过提供任何DOM对象的ID、类名、标记类型等来查找它,或者只需先查找父对象,然后指定所需的嵌套子对象

例如,您可以通过此查询找到第一个Div.对象

$('.ObjectContainer .Object:first')

因此,jQuery选择器中的空格分隔父节点及其子节点

为了澄清,空格分隔父节点和任何子节点…不仅仅是直接子节点。同样为了澄清,没有任何限制,匹配的元素必须是div':last'='*:last','div:last'='div*:last'jQuery选择器引擎从右向左工作。我认为关于阶段匹配的解释需要在这里改变吗?这也意味着
$('div#post ul.tags li')
$('div#post').find('ul.tags').find('li')不相同。。我说的对吗?@techie_28没有功能上的区别,它们是相同的。
<div class="container">
  <div>
    <div>
      <a class="post"> <!-- matched -->
    </div>
  </div>
</div>
$('div#post ul.tags li');
$('div#post').find('ul.tags').find('li');
$('.ObjectContainer .Object:first')