2012-03-21 5 views
5
<li> 
    <a class="handle" href="abc.htm">TopLink</a> 
    <ul class="container"> 
     <li> 
      <a href="xyz.htm">SubLink1</a> 
     </li>  
    </ul> 
</li> 

Quando click sul TopLink (class = "gestire");jQuery selezionando elemento adiacente

Domanda: come scrivere selettore jQuery in modo tale da selezionare ul class = "contenitore" ogni volta che clicco su TopLink

Qualcosa di simile; $ (this) (Prendi la prossima UL con classname = "contenitore")

risposta

10

Se questo sarà sempre la struttura del codice HTML, si può utilizzare semplicemente next:.

$(".handle").click(function() { 
    var ul = $(this).next(); 
}); 

se ci potrebbe essere elementi tra il collegamento e la ul, è possibile utilizzare siblings per ottenere tutti gli elementi che corrispondono al selettore:

$(".handle").click(function() { 
    var uls = $(this).siblings("ul.container"); 
}); 

anche se sarebbe anche ottenere fratelli precedenti. Per ottenere solo i seguenti fratelli, è possibile utilizzare nextAll:

$(".handle").click(function() { 
    var uls = $(this).nextAll("ul.container"); 

    //You can then use `.eq(0)` to get the closest matching sibling: 
    var sibling = uls.eq(0); 
}); 
+0

grazie è fantastico! – user6890

+0

Nessun problema, felice di poter aiutare :) –