В документация jQuery для селектора дочерних элементов Я увидел эту заметку:
Примечание. Селектор
$("> elem", context)
будет устаревшим в будущей версии. Его использование, таким образом, обескураживается вместо использования альтернативных селекторов.
Я использую этот шаблон все время, обычно так:
$nodes.find('> children[something=morecomplicated] > somethingelse');
Однако я не понимаю, к чему могут относиться "альтернативные селекторы". Каков правильный способ записи селектора, который пересекает непосредственные дочерние объекты контекста node? Как бонус, может ли кто-нибудь объяснить, почему это обесценивается? Все альтернативы, которые все дают, кажутся удивительно уродливыми.
Вот некоторые вещи, которые не работают:
// does not guarantee that '.child' is an immediate child
$nodes.find('.child > .grandchild');
// this will return empty array in recent jQuery
// and will return full list of children in older jQuery
$nodes.children('.child > .grandchild');
// Anything like this which forces you to split up the selector.
// This is ugly and inconsistent with usual selector ease-of-use,
// and is a non-trivial conversion for long or complex selectors.
$nodes.children('.child').children('.grandchild');
// After all, no one would ever recommend
$nodes.find('.this').children('.that');
// instead of
$nodes.find('.this > .that');