> JQuery Child Selector без родителей разрешен? - PullRequest
1 голос
/ 22 октября 2010

Быстрый вопрос, действительно ли jQuery дочерний селектор без родителя когда-либо действителен?Если да, то как бы вы его использовали?

Пример дочернего селектора jQuery:

$('ul > li')

Пример дочернего селектора jQuery без родителя:

$('> li')

Второйпример выше не работает.Однако я не могу вспомнить, видел ли я это раньше или видел что-то вроде:

$('ul').not('>li')

Не работает на самом деле (но не появляется сообщение об ошибке, поэтомуэто просто игнорируется?)

Поэтому мой вопрос: вы бы EVER использовали дочерний селектор без родителя, и он был бы действительным селектором jQuery.

Спасибо, извинитеесли вопрос тупой:)


Редактировать:

Наряду с примером Ника jQuery.find внизу, другой вариант использования

$('ul:has(>li)')

Примечание: that $ ('ul') .has ('> li ') неверно и должно быть написано

$('ul').has('ul>li')

И не ()

Не уверен, правильно ли я понимаю, но вы неникогда не используйте> внутри not () сразу, потому что not () касается только одного элемента, а> сравнивает несколько элементов.Однако вы можете сделать что-то вроде

$('li:not(:has(>p))'

Ответы [ 3 ]

4 голосов
/ 22 октября 2010

Да, он работает без родителя, , но , он не может быть в контексте по умолчанию , потому что ваш <li> не является direct ребенок document.Кроме того, само по себе это не имеет никакого смысла, так как это прямой потомок что-то , он будет таким же, как $("li").

Когда он будет использоваться?возможно сократить код, например:

$(this).find("> li > span a");
//as opposed to not being able to start with it:
$(this).children("li").children("span").find("a");
0 голосов
/ 22 октября 2010

Зачем вам это нужно?

Вы всегда можете использовать $('* > li'), хотя я не могу реально увидеть, что это будет достигать, так как li всегда должен быть ребенком чего-то ulol

0 голосов
/ 22 октября 2010

Я не могу вспомнить ситуацию, которая требует выбора ребенка без родителя. Дочерний селектор используется для выбора непосредственных потомков родительского элемента. Если родительского элемента нет, чьи дети должны быть выбраны?

...