document
действительно (по крайней мере) имеет одного дочернего элемента, который является HTMLHtmlElement
(который наследует форму HTMLElement
), так что да, теоретически, jQuery (или Sizzle в этом случае) должен возвращать этого.
Это ошибка?Это может быть дизайнерское решение.Но давайте посмотрим, что $(document).children()
дает нам:
alert($(document).children().length);
выводит 1
.
Интересно также, что $(document).find("> html")
возвращает пустой набор, тогда как $(document).find("html")
возвращает HTMLHtmlElement
.Но следующее: true
:
$(document).find("html").parent()[0] === document
По крайней мере, это противоречие в jQuery..find('> *')
должен возвращать те же элементы, что и .children()
IMO.
Это может быть ошибкой в Sizzle или jQuery (кто-то, у кого достаточно времени, может взглянуть на источник Sizzleкод [источник] и выясните, где может быть проблема).
С другой стороны, можно сказать, что дочерний селектор работает только на узлах Element
, а document
не является узлом Element
.С этой точки зрения, нет ошибки, только это несоответствие.