2011-03-23 28 views
9

Si tengo elementos con nombres de clases como esta:jQuery. Seleccionar todos los elementos que se inicia con CLASSNAME

.ses_0 .ses_1 .ses_2 .ses_3 

¿Cómo puedo seleccionar todos los elementos y agregar el prefijo a los que tienen algún fragmento? Algo como esto:

var sessions = $('*[class*=ses_]'); 

    for (var i = 0; i < sessions.length; i++) 
    { 
     sessions [i].prepend("<img src='/Content/img/caticon"+i+".png' />"); 
    } 

eso no funciona, por supuesto.

Editar: Ahhhh ... maldición Parece que tengo que llegar no sólo a las clases que comienzan con .ses_ sino también <a> elementos dentro. ¿Cómo puedo hacer eso?

Básicamente algo que funciona $(".ses_0 a"), lo único que necesita para obtener todas las clases comienzan con ses_

Respuesta

19

Ya casi ha terminado:

// selects all that start with "ses_" 
var sessions = $('[class^="ses_"]'); 

Usted es el bucle también debe trabajar, pero también se puede utilizar el

sessions.each(function(index){ 
    this.prepend(... // and so on 
}); 
+1

Una demostración de lo anterior: http://jsfiddle.net/Zikes/ZEhuK/ – Zikes

+0

¿Qué sucede si necesito obtener todos los anclajes (una etiqueta) dentro de los elementos cuyo nombre de clase comienza con ses_? – Agzam

+0

Solo agregue una 'a' al comienzo del selector '$ ('a [class^=" ses _ "]');' – Andreas

Cuestiones relacionadas