2015-01-30 16 views
6

In un elenco annidato come quello riportato di seguito, in che modo si può scegliere come target l'ul contenente joe senza conoscere la profondità effettiva in anticipo?Indirizza l'elemento ul/ol nidificato più profondo con css

<ul> 
    <li>foo 
     <ul> 
      <li>bar 
       <ul> 
        <li>baz 
         <ul> 
          <li>joe</li> 
         </ul> 
        </li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
</ul> 

http://jsbin.com/fiqowuhate/1/edit?html,css,output

+5

Ritengo che ciò non sia possibile solo con i CSS. – Harry

+0

possibile duplicato di [selettore CSS per ottenere l'elemento più profondo della classe specifica nell'albero HTML] (http://stackoverflow.com/questions/5247888/css-selector-to-get-deepest-element-of-specific-class- in-the-html-tree) – Kaiido

risposta

4

Per quanto ne sono personalmente a conoscenza, questo non è possibile in quanto v'è attualmente no parent selector in CSS, ma si potrebbe utilizzare il selettore jQuery $('ul:not(:has(ul))'); di indirizzare ul elementi senza ul figli, e aggiungere un classe per loro.

Example

+2

Ottima risposta! Questa domanda mi ha fatto girare la testa controllando tutti i selettori più recenti possibili per una possibile risposta. http://dev.w3.org/csswg/selectors-4/ – Aaron

+0

@ Aaron Ehi, grazie. Gli ultimi selettori CSS sono fantastici e sono sicuro che ciò sarebbe possibile in un modo o nell'altro, ma sembrano sempre limitati dal supporto del browser. Argh! – Andy

0

var str = $ ("ul> li: ultimo") del testo();. Avviso ("Valore più profondo: -" + str);

+0

Questo non funziona se ci sono più elementi al livello superiore: http://jsfiddle.net/5pmbed57/ – Andy

Problemi correlati