(Véase más abajo para qué es posible que no quieren hacer exactamente lo que se pide en la pregunta)
podría utilizar el [class="a"]
"atributo es igual selector", aunque es frágil:
$('span[class="a"]').hide();
El problema es que si tiene un espacio en blanco en su atributo de clase, se romperá. Ver este violín: http://jsfiddle.net/c7DP7/
Puedes solucionar este problema haciendo una consulta básica en esos elementos mediante un selector de clase normal, entonces filtrar aún más mientras chequeando solo a
se establece (y el recorte de los espacios en blanco en ese segundo filtro). Ver este violín: http://jsfiddle.net/uD48E/1/
$('.a')
.filter(function(index){
return $(this).attr("class").trim() == "a";
})
.hide();
La pregunta parece que está tratando de hacer más código "prueba de futuro", pero que el enfoque específico es más frágil. Rechazar todas las clases que no están relacionadas con la clase actual para la que está filtrando puede romper cosas por razones no relacionadas con la clase a
(como una clase no relacionada d
o e
que se agrega más adelante). Esto es importante si el HTML al que está aplicando su jQuery podría cambiarse en el futuro.
Una mejor forma de hacerlo es filtrar solo las clases que afectan el significado de la clase a
. Permitir ese tipo de flexibilidad es lo que realmente hace que su código sea más a prueba de futuro. Consulte maxedison's answer para conocer la mejor manera de hacerlo.
breve nota al OP: usted no tiene que incluir la palabra 'span' en el selector como Phil tiene aquí. Si hay divs o imgs que pueden tener la clase deseada y desea seleccionarlos, '$ (" [class = 'a'] ")' lo hará. – maxedison
El problema con esto es si el atributo contiene espacios en blanco, se romperá.Los selectores de clase no tienen ese problema. –