我在jQuery的,上面写着:
E>F
与标签名的所有元素相匹配F
是直接孩子E
。
E+F
与标签名的所有元素相匹配F
被立即标记名称的兄弟之前E
。
是什么在两者之间的区别? 一个能提供明确具体的例子吗?
我在jQuery的,上面写着:
E>F
与标签名的所有元素相匹配F
是直接孩子E
。
E+F
与标签名的所有元素相匹配F
被立即标记名称的兄弟之前E
。
是什么在两者之间的区别? 一个能提供明确具体的例子吗?
首先,作为jQuery的借用既>
和+
从CSS,它们表现为在所描述的相同的方式选择器的规格 ; 看到孩子组合子和相邻的兄弟组合子 。
“儿童”指的是嵌套在另一个元件内的一个电平的元件。 为了强调直接嵌套这些可以被称为“直接孩子”,如文档中的限制,但他们的意思是一样的。 包含在任何嵌套深度元件被称为“后代”; 这包括孩子,孙子,曾孙等。
选择E>F
将仅匹配F
在以下结构元件:
<E>
<F></F>
</E>
但不是在以下结构(其将通过匹配EF
, D>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~F
, D+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>
选择的E> F =父>
<parent>
<selected />
</parent>
E + F = preceding_sibling +选择
<parent>
<preceding_sibling />
<selected />
</parent>
下面的DOM结构应该向你解释的兄弟姐妹和孩子之间的区别:
-- Element
-- Sibling
-- Sibling
-- Child
-- Another Child
-- Sibling
$('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前面