Какая разница между этими двумя операторами jQuery? Они, похоже, делают то же самое, получая все теги div детей.
$("#mainblock div")
$("#mainblock > div")
Какая разница между этими двумя операторами jQuery? Они, похоже, делают то же самое, получая все теги div детей.
$("#mainblock div")
$("#mainblock > div")
$("#mainblock > div")
= уровень только для детей
$("#mainblock div")
= все дочерние + десенденты.
Посмотрите на jQuery Селекторы
Child Selector ("parent > child")
-
Иерархия Выбирает все прямые дочерние элементы, указанные "дочерним" элементом, указанным "родителем".
Descendant Selector ("ancestor descendant")
-
Иерархия Выбирает все элементы, являющиеся потомками данного предка.
Первый получит весь div
потомок #mainblock
. Второй получит все div
, которые являются непосредственными дочерними элементами #mainblock
$("#mainblock div")
Этот объект предназначен для всех DIV внутри "#mainblock" , независимо от того, является ли он прямым дочерним элементом "#mainblock" , или дочерним элементом дочернего элемента основного блока или так далее.
$("#mainblock > div")
Это будет нацелено только на прямые дочерние DIVs "#mainblock" и игнорировать другие DIV. Это быстрее, чем выше, если у вас есть только прямые дети. Потому что он не пытается найти внутри других элементов childs.
$("#mainblock div")
Соответствует любому элементу div, являющемуся потомком #mainblock.
$("#mainblock > div")
Соответствует любому элементу div, который является дочерним элементом #mainblock.
проверить http://www.w3.org/TR/CSS2/selector.html
Первый выбирает любой div, который является дочерним элементом `#mainblock 'на любом уровне. Второй будет выбирать любой div, который является непосредственным потомком.
Смотрите ссылку для получения дополнительной информации о селекторе CSS >
, который ведет себя так же, как в jQuery.
$( "# mainblock div" ) найти все div в #mainblock
$( "# mainblock > div" ) обнаружил только его дочерний
Предположим, что у вас есть структура ниже HTML:
<div id="mainblock">
<div>
<div></div>
<div></div>
</div>
<div></div>
<div></div>
</div>
Тогда
$("#mainblock div").length = 5
$("#mainblock > div").length = 3