Pregunta Obtener el nombre de clase usando jQuery


Quiero obtener el nombre de clase usando jQuery

Y si tiene una identificación

<div class="myclass"></div>

529
2018-03-08 09:43


origen


Respuestas:


Después de obtener el elemento como objeto jQuery por otros medios que su clase, entonces

var className = $('#sidebar div:eq(14)').attr('class');

debería hacer el truco. Para el uso de ID .attr('id').

Si se encuentra dentro de un controlador de eventos u otro método jQuery, donde el elemento es el nodo DOM puro sin envoltorio, puede usar:

this.className // for classes, and
this.id // for IDs

Ambos son métodos DOM estándar y están bien soportados en todos los navegadores.


957
2018-03-08 09:45



Es mejor usar .hasClass() cuando desee verificar si un elemento tiene un particular class. Esto se debe a que cuando un elemento tiene múltiples class no es trivial verificar

Ejemplo:

<div id='test' class='main divhover'></div>

Dónde:

$('#test').attr('class');        // returns `main divhover`.

Con .hasClass() podemos probar si el div tiene la clase divhover.

$('#test').hasClass('divhover'); // returns true
$('#test').hasClass('main');     // returns true

204
2018-06-09 04:57



Tenga cuidado, tal vez, tiene una clase y una subclase.

  <div id='id' class='myclass mysubclass' >dfdfdfsdfds</div>

Si usa soluciones anteriores, tendrá:

myclass mysubclass

Entonces si quieres tener el selector de clase, Haz lo siguiente :

var className = '.'+$('#id').attr('class').split(' ').join('.')

y tu tendras

.myclass.mysubclass

Ahora, si desea seleccionar todos los elementos que tienen la misma clase, como div, arriba:

   var brothers=$('.'+$('#id').attr('class').split(' ').join('.'))

eso significa

var brothers=$('.myclass.mysubclass')

Actualización 2018

O puede implementarse con vainilla javascript en 2 líneas:

  const { classList } = document.querySelector('#id');
  document.querySelectorAll(`.${Array.from(classList).join('.')}`);

35
2018-05-25 20:53



Esto es para obtener la segunda clase en múltiples clases usando en un elemento

var class_name = $('#videobuttonChange').attr('class').split(' ')[1];

26
2017-11-08 04:11



puedes simplemente usar,

var className = $('#id').attr('class');


15
2018-02-18 11:31



Si tu <div> tiene un id:

​<div id="test" class="my-custom-class"></div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

...puedes probar:

var yourClass = $("#test").prop("class");

Si tu <div> tiene solo un class, puedes probar:

var yourClass = $(".my-custom-class").prop("class");

9
2018-05-12 16:32



Si va a utilizar la función de división para extraer los nombres de las clases, tendrá que compensar las posibles variaciones de formato que podrían producir resultados inesperados. Por ejemplo:

" myclass1  myclass2 ".split(' ').join(".")

produce

".myclass1..myclass2."

Creo que es mejor usar una expresión regular para que coincida con un conjunto de caracteres permitidos para los nombres de las clases. Por ejemplo:

" myclass1  myclass2  ".match(/[\d\w-_]+/g);

produce

["myclass1", "myclass2"]

La expresión regular probablemente no está completa, pero espero que entiendas mi punto. Este enfoque mitiga la posibilidad de un formato pobre.


6
2017-08-17 02:34