Comment choisirais-je seulement le premier niveau .block et non aucun des enfants?
$('.block:not("Children of this here")')
<-
Si cet exemple de balise a un élément parent, par exemple ci-dessous. Sinon, le parent sera body
s’il s’agit d’un code HTML valide.
$('#parent > .block').css({ border: '1px solid red' });
Vous pouvez utiliser le sélecteur :first
pour sélectionner uniquement le premier élément .block
correspondant:
$('.block:first')
Cela fonctionne car jQuery correspond aux éléments dans l’ordre des documents. L’élément .block
plus .block
sera le premier élément associé par .block
, et :first
filtrera pour le renvoyer uniquement.
Notez que :first
n’est pas la même chose que :first-child
.
EDIT : En réponse à votre mise à jour, vous pouvez écrire ce qui suit, qui ne fonctionnera que si tous les éléments sont nesteds trois profonds:
$('.block:note(:has(.block .block))')
Vous pouvez écrire une solution plus robuste en utilisant un appel de fonction:
$('.block').not(function() { return $(this).closest('.block').length; })
Cela trouvera tous les éléments .block
, puis supprimera tous les éléments correspondants ayant un ancêtre correspondant à .block
. (Vous pouvez remplacer le closest
par parent
si vous le souhaitez).
$('#parent').children('.block');
Voir .children () Référence jQuery.
Essaye ça:
$("div.block:first").
edit: supprime les espaces. merci: -) …. maintenant ça devrait être bon.
HTH