<ul><li><div><div><span id="thisid"></span></div></div></li></ul>
$('#thisid').parent('li');
cela ne fonctionne évidemment pas, mais comment saisir l'élément li? Je ne veux pas utiliser:
$('#this').parent().parent().parent();
Je ne veux pas l'utiliser, car il peut arriver qu'il n'y ait qu'un seul élément div, au lieu de deux. Dans ce cas, je saisirais l'élément ul au lieu de l'élément li.
$('#thisid').parents('li');
// ^ plural!
Notez que si vous ne voulez que le premier élément <li>
Dans l'ascendance, vous devez utiliser closest()
:
$('#thisid').closest('li');
// `closest()` is equivalent to (but performs better than)
$('#thisid').parents('li').eq(0);
$('#thisid').parents('li').first();
$('#thisid').parents('li')
ou si vous ne voulez que le premier:
$('#thisid').closest('li')
Simple, utilisez parents()
var parents = $("#thisid").parents('li');
$('#thisid').parents( 'li:eq(0)' );
Devrait le faire. Cela vous donnera le premier parent (:eq(0)
) qui correspond à la balise que vous recherchez.
$('li').has('#thisid')
Je préfère le "plus proche" que les "parents".
Les parents remontent l'arborescence DOM jusqu'à l'élément racine du document, ajoutant chaque élément ancêtre à une collection temporaire; il filtre ensuite cette collection en fonction d'un sélecteur s'il en est fourni.
où
Parcourez l'arborescence DOM jusqu'à ce qu'il trouve une correspondance pour le sélecteur fourni.
Le plus important ce qu'ils donnent en résultat:
Praents: l'objet jQuery retourné contient zéro ou plusieurs éléments pour chaque élément de l'ensemble d'origine, dans l'ordre inverse des documents.
Le plus proche: l'objet jQuery retourné contient zéro ou un élément pour chaque élément de l'ensemble d'origine, dans l'ordre du document
$('#thisid').closest('li');
Vous voudrez peut-être utiliser $("#thisid").closest('li')
. Cela traverse l'arborescence DOM à partir du nœud sélectionné et renvoie le premier ancêtre correspondant tandis que la .parents()
se déplace depuis le nœud parent et renvoie tous les nœuds ancêtres correspondant à ce filtre. Voir ici pour plus d'informations.