El paso a paso o código que encontrarás en este artículo es la resolución más fácil y válida que hallamos a tu duda o problema.
Solución:
Utilizar element.classList
.contains
método:
element.classList.contains(class);
Esto funciona en todos los navegadores actuales y también hay polyfills para admitir navegadores más antiguos.
Alternativamentesi trabaja con navegadores más antiguos y no quiere usar polyfills para arreglarlos, use indexOf
es correcto, pero hay que modificarlo un poco:
function hasClass(element, className)
return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1;
De lo contrario, también obtendrá true
si la clase que está buscando es parte de otro nombre de clase.
MANIFESTACIÓN
jQuery usa un método similar (si no el mismo).
Aplicado al ejemplo:
Como esto no funciona junto con la declaración de cambio, podría lograr el mismo efecto con este código:
var test = document.getElementById("test"),
classes = ['class1', 'class2', 'class3', 'class4'];
test.innerHTML = "";
for(var i = 0, j = classes.length; i < j; i++)
if(hasClass(test, classes[i]))
test.innerHTML = "I have " + classes[i];
break;
También es menos redundante;)
La solución fácil y efectiva es intentar .contiene método.
test.classList.contains(testClass);
En los navegadores modernos, solo puede usar el contains
método de Element.classList
:
testElement.classList.contains(className)
Manifestación
var testElement = document.getElementById('test');
console.log(
'main' : testElement.classList.contains('main'),
'cont' : testElement.classList.contains('cont'),
'content' : testElement.classList.contains('content'),
'main-cont' : testElement.classList.contains('main-cont'),
'main-content' : testElement.classList.contains('main-content')
);
Navegadores compatibles
(desde CanIUse.com)
polirelleno
Si quieres usar Element.classList
pero también desea admitir navegadores más antiguos, considere usar este polirelleno por eli gris.
Si sostienes algún interrogante o disposición de progresar nuestro crónica te invitamos añadir un paráfrasis y con placer lo ojearemos.