jQuery: exclut l’élément racine d’une liste (ul)

J’ai utilisé un morceau de code JQuery à partir du débordement de stack. Voici le lien vers la page:

https://stackoverflow.com/questions/2…76196#13976196

J’ai besoin de masquer une grande arborescence UL, à l’exception des éléments racines. Le code ci-dessus fonctionne très bien sauf que je ne comprends pas la ligne suivante:

Code:

$('ul, li', $('#lesson-sidebar ul li')).hide(); 

Ce code masque tous les éléments UL et LI dans les listes, mais exclut les éléments racine. Je ne comprends pas comment append $('#lesson-sidebar ul li') tant que paramètre de sélecteur séleconde l’exclut de la commande hide.

Je sais que la commande hide ne bascule pas l’état visible. Ce n’est donc pas comme si elles cachaient l’élément racine et le montraient immédiatement. La plupart des autres descriptions s’appuient sur des commandes telles que: ne pas exclure l’élément racine.

Quelqu’un peut-il expliquer pourquoi les éléments racines ne sont pas cachés avec cette commande? Notez que si je supprime la partie $('#lesson-sidebar ul li') les éléments racines sont en réalité masqués.

Que $('ul, li', $('#lesson-sidebar ul li')) signifie

Sélectionnez tous les ul et li qui sont des enfants à $('#lesson-sidebar ul li')

Voici le modèle de ce sélecteur $('children selector', parent) Comme vous pouvez le voir dans l’exemple, parent n’est pas une chaîne, c’est un élément DOM ou jQuery