2012-06-29 15 views
17

¿Cómo encontrar la última clase en el elemento sin saber el número exacto de clases?jQuery - encuentre la última clase en el elemento

nuestro elemento:

<div class="class-1 class-2 some-other-class"></div> 

enfoque normal con split no funcionará aquí, ya que no sabemos el número de clases. ¿Podemos verificar la longitud del .split(' ')?

var i = $('div').prop('class'); 
var j = i.split(' ')[x]; 

Todas las sugerencias son muy apreciadas.

+3

Si desea hacer en una línea, 'i.split ('') [i.split ('') .length - 1]' le dará la última clase. –

+0

Las clases son esencialmente entidades desordenadas. Personalmente, no me gustaría confiar en que javascript/jQuery entregue el resultado "correcto". Si tuviera que saber la última clase agregada a un elemento (o un conjunto de elementos), entonces lo haría por otros medios. –

Respuesta

38

La solución más simple es usar pop, que accede al último elemento de la matriz.

var lastClass = $('div').attr('class').split(' ').pop(); 

Tenga en cuenta que pop elimina también el elemento de la matriz, pero ya que no está haciendo nada más con ella, eso no es un problema.

+0

¡Gran solución! – Iladarsda

14
var classStr = $('div').attr('class'), 
    lastClass = classStr.substr(classStr.lastIndexOf(' ') + 1); 

DEMO

Como classStr contiene los nombres de clases separadas por un solo space, por lo lastIndexOf(' ') se encuentra la última space y hacer partición de allí y darle el último class nombre.

Cuestiones relacionadas