Si existe Div con cierta clase, haga algo con Javascript

2 minutos de lectura

Avatar de usuario de Alex
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.

  • 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

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


Avatar de usuario de Rifat Wahid Alif
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 tengo null 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 devolver null y [0] es undefined porque tiene un length de 0 … tal como dice esta respuesta.

    – Quintín

    29 mayo 2022 a las 20:34

Avatar de usuario de Krupesh Kotecha
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>

avatar de usuario de sagar buddhi
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

Avatar de usuario de sɐunıɔןɐqɐp
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"});

¿Ha sido útil esta solución?