Sélecteur d'enfant à l'aide de `querySelectorAll " sur un DOM collection

Nous allons supposer que vous avez une liste imbriquée avec enfant des listes.

<ul>
    <li></li>
    <li>
        <ul>
            <li></li>
            <li></li>
        </ul>
    </li>
    <li></li>
</ul>

Et l'utilisation document.querySelectorAll() pour effectuer une sélection:

var ul = document.querySelectorAll("ul");

Comment puis-je utiliser le ul de la collection pour obtenir directement les éléments enfants?

ul.querySelectorAll("> li"); 
//Gives 'Error: An invalid or illegal string was specified'

Nous allons présumer ul est mis en cache en quelque sorte (sinon j'aurais pu faire ul > li directement).

En jQuery cela fonctionne:

$("ul").find("> li");

Mais il n'est pas en natif querySelectorAll. Toutes les solutions?

  • Que le sélecteur n'a pas vraiment de sens. Avec jQuery que vous souhaitez utiliser .children("li") au lieu de .find("> li"). Je suis surpris que des œuvres à tous, en fait.
  • .find('> li ul span') est utile, mais pas tellement sur sa propre comme dans le cas des OP exemple.
  • l'exemple est un peu tiré par les cheveux, mais il a certainement une utilisation dans le monde réel de cas 🙂
InformationsquelleAutor Husky | 2012-04-17