Ho un codice con molti sottomenu che condividono lo stesso nome di classe.Di fronte a jQuery's .Closest (Top/Far-Most?)
Ecco una struttura:
.menu
.sub-menu
.sub-menu
.sub-menu
.sub-menu
.sub-menu
.sub-menu
.elem
.elem
.sub-menu
noti che .sub-menu
possono essere infiniti livelli di profondità.
Quindi, come ottenerlo: quando si fa clic su .elem
, si desidera attraversare il DOM verso l'alto finché non viene raggiunto il massimo .sub-menu
e applicare uno stile su di esso. Sono a conoscenza di .closest()
e .parent()
e .find()
, ma non ho idea se jQuery abbia funzionalità come .topMost(selector)
?
L'unico modo che posso pensare è forse l'esecuzione di un ciclo e passando attraverso .closest('.sub-menu')
del nuovo elemento fino a quando la sua lunghezza è pari a zero (non ci sono più i genitori con questa classe, quindi deve essere il più in alto). Tuttavia, penso che dovrebbe esserci un approccio più pratico a questo.
Sentiti libero di modificare il titolo in uno più adatto se pensi che chiarirà lo scopo della domanda per i futuri lettori. –
Mi piace. È quello che ho cercato su Google. È stato appena pubblicato per riferimento futuro :) –
Questo non è corretto in quanto find() è l'opposto di closest(). find() troverà tutti gli elementi nell'albero. Quindi il contrario di closest(), cercando in basso, sarebbe find(). First(). –