que han conseguido algunas clasesjquery cómo seleccionar todos los elementos de la clase comienza con "texto-"?
.text-1
.text-2
.text-3
Quiero seleccionarlos todos, cómo hacerlo? Gracias por la ayuda
que han conseguido algunas clasesjquery cómo seleccionar todos los elementos de la clase comienza con "texto-"?
.text-1
.text-2
.text-3
Quiero seleccionarlos todos, cómo hacerlo? Gracias por la ayuda
Pruebe esto. Para más información lea jquery selectors
$('*[class^="text"]')
$('#qvDetails,#qvAdd,.qvFramedActive,#qvMoreSizes').live('mouseover',function(){
$(this).addClass('qvHover');
});
ejemplo de uno de mis projects.you pueden mencionar los dos divs y clases juntos como anteriormente
puede proporcionar como clase o divs coma separados en la misma ...
Aquí es una función que se ocupa de la cuestión de las múltiples clases, en casos como <div class="foo bar barfood">
:
function classStartsWith(str) {
return $('div').map(function(i,e) {
var classes = e.className.split(' ');
for (var i=0, j=classes.length; i < j; i++) {
if (classes[i].substr(0, str.length) == str) return e;
}
}).get();
}
La función devuelve una matriz de hacer coincidir los elementos DOM. Se puede utilizar de este modo:
$(classStartsWith('text-')).doSomething();
He aquí un ejemplo: http://www.jsfiddle.net/Ms6ey/3/
Por supuesto, esto supone que el selector 'div'
. La pregunta parece estar preguntando sobre cualquier elemento en absoluto. Es bastante fácil hacer que la función tome un selector como otro argumento, y usar eso en lugar del codificado en el ejemplo.
Usted no necesariamente tiene que especificar asterisco *
, se puede hacer esto también:
$('[class^="text-"]')
Aviso la adición de -
después text
algo que busca.
Consulte jQuery starts with selector para obtener más información.
He aquí un intento de solución que a la vez precisa y no demasiado lento:
var elts = $('*[class*="text-"]')
.filter(function() {
return this.className.match(/(?:^|\s)text-/);
});
que funciona mediante el uso de la (esperemos) rápido código chisporroteo de encontrar elementos que tienen "texto:" en cualquier lugar en su atributo class
, y luego llama a una función en cada uno de ellos para filtrarlos a los que realmente tienen "texto" al comienzo de un nombre de clase.
+1 Respuesta correcta. Además, es más rápido que la solución que tuve, que utilizó jQuery para obtener los nombres de las clases. Buen trabajo. –
¡Esta es la respuesta correcta! – Ejaz
El atributo de clase toma una lista de espacios separados de clases; esto fallará en 'class =" foo text-1 bar "' – Quentin
Entonces podemos usar $ ('* [class * = "text"]'). esto buscará texto como subcadena en el atributo de clase. Ref: http://api.jquery.com/attribute-contains-selector/ –
@Chinmayee Que coincidirá erróneamente con algo como 'sometext' – Phil