2011-05-08 15 views
5

Tengo un par de divs que se parecen a esto:jQuery Obtener última de la clase de valores múltiples

<div class="film cars-0317219"></div> 
<div class="film wall-e-0910970"></div> 
<div class="film finding-nemo-0266543"></div> 
<div class="film cars-0317219"></div> 

Im preocupados con el segundo (por lo pasado) nombre de la clase, sino sólo de los divs que tienen la clase ' película'. ¿Hay alguna forma de que pueda obtener el último nombre de clase con JQuery?

Para darle un ejemplo de lo que quiero hacer, mire a continuación. Quiero hacer de estos se puede hacer clic div y dejar que el visitante vaya a /title/last-class-name.html

$('div.film').live('click', function(){ 

    // This returns the whole 'film random-title-id' 
    // instead of just 'random-title-id' 
    var id = $(this).attr('class'); 

    location.href = '/title/' + id + '.html'; 

}); 

Respuesta

7

Esto debería funcionar:

$('div.film').live('click', function(){ 

    var classes=$(this).attr("class").split(" "); 
    var id=classes[classes.length-1]; 

    location.href = '/title/' + id + '.html'; 

}); 

aunque si aún no dispone de identificadores en sus elementos, esto parece que tendría más sentido como ID.

+0

Muchas gracias. ¡Funciona genial! Solía ​​ser el ID de los divs, pero estoy en un punto donde la misma película puede aparecer 2 veces en una página (es decir, actor, director). Hay más acciones en este div que alteran el estado de la película, lo que también debería afectar a los otros divs de la misma película. – Bob

+0

¡muchas gracias! Los ID de acuerdo son mejores en la mayoría de los casos, pero esto es lo que necesito en este momento. – squarecandy

+0

@squarecandy No estoy seguro de si está utilizando ese bit, pero tenga en cuenta que 'live' ha sido reemplazado por [on] (http://api.jquery.com/on/) –

Cuestiones relacionadas