E> F和E + F选择之间的区别?(Difference between E>F and E

2019-07-30 10:29发布

我在jQuery的,上面写着:

E>F与标签名的所有元素相匹配F是直接孩子E

E+F与标签名的所有元素相匹配F被立即标记名称的兄弟之前E

是什么在两者之间的区别? 一个能提供明确具体的例子吗?

Answer 1:

首先,作为jQuery的借用既>+从CSS,它们表现为在所描述的相同的方式选择器的规格 ; 看到孩子组合子和相邻的兄弟组合子 。


“儿童”指的是嵌套在另一个元件内的一个电平的元件。 为了强调直接嵌套这些可以被称为“直接孩子”,如文档中的限制,但他们的意思是一样的。 包含在任何嵌套深度元件被称为“后代”; 这包括孩子,孙子,曾孙等。

选择E>F将仅匹配F在以下结构元件:

<E>
  <F></F>
</E>

但不是在以下结构(其将通过匹配EFD>F或者甚至E>D>F代替):

<E>
  <D>
    <F></F>
  </D>
</E>

一个更真实世界的插图中可以找到这个答案 。 如前所述,虽然它涵盖了CSS,这是相同的,因为jQuery的CSS从借用也无妨。


“邻近”指的是在相同的嵌套级的元件; 即是相同的父元素的子元素。 可以有一个/下的兄弟姐妹和一个/只要前面的兄弟姐妹,他们都有着相同的父,但在这种情况下,“ F被立即前面元素E元素”是指F那之后立刻浮现元素E元素,它们之间没有其他的兄弟元素。

选择器E+F将仅匹配F在以下结构元件:

<E></E>
<F></F>

但不是在以下结构(其将通过匹配E~FD+F或甚至E+D+F代替):

<E></E>
<D></D>
<F></F>

一个更真实世界的插图中可以找到这个答案 。


最后,这里的含各种元素的,表示哪个更复杂的情景F元件由其中上述选择器用于比较匹配:

<root>
  <D>
    <F></F>   <!-- Not matched -->
  </D>
  <E>
    <E>
      <F></F> <!-- E>F only -->
    </E>
    <F></F>   <!-- E>F, E+F -->
  </E>
  <F></F>     <!-- E+F only -->
</root>


Answer 2:

选择的E> F =父>

<parent>
    <selected />
</parent>

E + F = preceding_sibling +选择

<parent>
    <preceding_sibling />
    <selected />
</parent>


Answer 3:

下面的DOM结构应该向你解释的兄弟姐妹和孩子之间的区别:

-- Element
-- Sibling
-- Sibling
  -- Child
  -- Another Child
-- Sibling


Answer 4:

$('E>F').css({fontWeight:'bold'}); = F电子商务直接子

<E>
<F>粗体文本</ F>
<A> <F> </ F> </A> //这里 'F' 是E的不是眼前的孩子
</ E>

$('E+F').css({fontWeight:'bold'}); = F喜欢E的下一个同级

<E> </ E>
<F>粗体文本</ F>
<A> </A>
<F> </ F> //这里 'F' 是不是用E前面

操场



文章来源: Difference between E>F and E+F selectors?