Determinación de la presencia de clases de elementos en JavaScript
Al inspeccionar los atributos de clase de un elemento, a menudo es necesario verificar si contiene una clase específica. El código proporcionado utiliza una instrucción de cambio para examinar el valor de clase exacto de un elemento, pero este enfoque no detecta coincidencias parciales.
Para resolver esta limitación, considere el uso del método element.classList .contains. Este método acepta un nombre de clase como parámetro y devuelve un valor booleano que indica su presencia dentro de la lista de clases del elemento:
element.classList.contains(class);
Este método es universalmente compatible en todas las aplicaciones modernas. navegadores y proporciona una manera consistente de verificar la inclusión de clases.
Alternativamente, para compatibilidad con navegadores más antiguos que carecen del método .contains, puede emplear la siguiente versión modificada del método indexOf:
function hasClass(element, className) { return (' ' element.className ' ').indexOf(' ' className ' ') > -1; }
Esta modificación garantiza que detecte con precisión coincidencias parciales, evitando falsos positivos cuando la clase que busca es parte de un nombre de clase más grande.
Aplicando este método al ejemplo proporcionado:
var test = document.getElementById("test"), classes = ['class1', 'class2', 'class3', 'class4']; test.innerHTML = ""; for(var i = 0, j = classes.length; iAl emplear el método .contains o la función indexOf modificada, puede determinar de manera confiable si un elemento contiene una clase específica en JavaScript, independientemente de la compatibilidad del navegador o la presencia de coincidencias parciales.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3