Alex
Tengo una clase y, si existe, quiero usar la variable como una declaración if verdadera/falsa.
HTML
<div id="snake" class="snake--mobile">
JS
var isMobileVersion = document.getElementsByClassName('snake--mobile');
if (isMobileVersion !== null)
alert('xx');
Sin embargo, no está funcionando. ¿Algunas ideas? No jQuery responde, por favor.
getElementsByClassName
devuelve un NodeList
que es un objeto tipo matriz. Puedes comprobar su length
para determinar si existen elementos con clase definida:
var isMobileVersion = document.getElementsByClassName('snake--mobile');
if (isMobileVersion.length > 0) {
// elements with class "snake--mobile" exist
}
-
tengo esto
Cannot read properties of undefined (reading 'length'
– Salem
29 mayo 2022 a las 20:24
Rifat Wahid Alif
Aquí hay una solución de muestra para la clase de verificación (hasClass) en Javascript:
const mydivclass = document.querySelector('.mydivclass');
// if 'hasClass' is exist on 'mydivclass'
if(mydivclass.classList.contains('hasClass')) {
// do something if 'hasClass' is exist.
}
-
Sí, “contiene” es el camino a seguir aquí… ej.
if( document.getElementById("MyElement").classList.contains('special-class') ) { console.log('Found!') }
–Paul Brady
15/10/2021 a las 21:35
-
Muchas gracias
querySelector
resuelto el problema ahora tengonull
si la clase no existe.– Salem
29 mayo 2022 a las 20:35
getElementsByClassName
devuelve una lista de nodos. nunca será null
. podría tener un .length
de 0
.
-
@Salem — Mmm. ¿Sí? Entonces
getElementsByClassName
no devolvernull
y[0]
esundefined
porque tiene unlength
de0
… tal como dice esta respuesta.– Quintín
29 mayo 2022 a las 20:34
Krupesh Kotecha
lo he probado está completamente funcionando. podrías haber cometido cualquier otro error. getElementsByClassName devolver vacío si no se encuentra ningún elemento con el nombre de clase dado o devuelve una lista de elementos que han dado clase. para que pueda acceder a él usando index.
var isMobileVersion = document.getElementsByClassName('snake--mobile');
if (isMobileVersion.length > 0) {
isMobileVersion[0].style.color="red";
alert('class exist');
}
<div id="snake" class="snake--mobile">Class Exist div </div>
sagar buddhi
selector de consulta() El método del documento devuelve el primer elemento que coincide con el selector especificado; de lo contrario, devuelve nulo si no hay coincidencia referencia del selector de consulta.
Syntax
element = document.querySelector(selectors);
console.log(`existing-class element ${document.querySelector('.existing-class')}`)
console.log(`non-existing-class element ${document.querySelector('.non-existing-class')}`)
if(document.querySelector('.existing-class')) {
alert('inside if block')
}
<div class="existing-class">
No se requiere verificación nula explícita con la declaración if, ya que nulo es un valor falso cuando se encuentra en un contexto booleano, el uso de la salida de querySelector funcionará referencia falsa
sɐunıɔןɐqɐp
var id=$("#main .slides .gallery-cell.is-selected").attr('id');
var isselected = document.getElementById(id);
isselected.scrollIntoView({behavior: "smooth", block: "center", inline: "center"});
posible duplicado de ¿Cómo verificar si un elemento existe en otro elemento?
– David Condrey
8 oct 2014 a las 10:45
@dcc Quería una solución que no fuera jQuery
– Alex
8 oct 2014 a las 10:59
stackoverflow.com/questions/5783280/…
– David Condrey
8 oct 2014 a las 11:03