web-dev-qa-db-fra.com

JQuery, trouver le parent

<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.

42
user317005
$('#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();
83
Andy E
$('#thisid').parents('li')

ou si vous ne voulez que le premier:

$('#thisid').closest('li')
7
davin

Simple, utilisez parents()

var parents = $("#thisid").parents('li');
2
Jacob Relkin
$('#thisid').parents( 'li:eq(0)' ); 

Devrait le faire. Cela vous donnera le premier parent (:eq(0)) qui correspond à la balise que vous recherchez.

2
Decent Dabbler
$('li').has('#thisid')

http://api.jquery.com/has/

1
generalhenry

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.

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');

Suivez ce lien

1
Uzair Xlade

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.