2011-02-15 17 views
7

que tengo:jquery: más cercano ('h3') selector?

<ul class="rating"> 
    <h3>Like this</h3> 
    <li class="rating-number"> 
     <div id="iLikeThis" class="iLikeThis"> 
      <span class="counter">2</span> 
     </div> 
    </li> 
</ul> 

este es mi código de jQuery

$('.iLikeThis .counter').each(function() { 
     $(this).parent().parent().parent().children('h3').text('You like this'); 
     $(this).parent().addClass('like'); 
}); 

¿Hay una mejor manera de seleccionar el elemento h3 más cercano. Funciona con 3 veces padre() pero no con el más cercano ('h3).

¿Por qué?

+1

Esto es HTML válido. No puede tener un 'h3' como hijo de un' ul'. Con HTML roto como este, es imposible saber si el navegador hace lo correcto. – RoToRa

+0

@RoToRa: Buena captura. – BoltClock

+0

gracias! ¿puedes tenerlo como un hijo de li? – matt

Respuesta

13

Como h3 no es uno de los padres de .counter, eso no funcionará. .closest() utilizar en .rating lugar y encontrar su h3:

$(this).closest('.rating').children('h3').text('You like this');