Quiero obtener el nombre de la clase usando jQuery
Y si tiene una identificación
<div class="myclass"></div>
javascript
jquery
X10nD
fuente
fuente
parents()
.this.className
funciona sin jQuery (volvería"myclass"
en el ejemplo anterior)Respuestas:
Después de obtener el elemento como objeto jQuery por otros medios que no sean su clase, entonces
debería hacer el truco. Para el uso de identificación
.attr('id')
.Si está dentro de un controlador de eventos u otro método jQuery, donde el elemento es el nodo DOM puro sin envoltorio, puede usar:
Ambos son métodos DOM estándar y están bien soportados en todos los navegadores.
fuente
if(className.indexOf(' ') !== -1){throw new Error('Uh-oh! More than one class name!');}
.attr('class')
y lo combina,if(className.indexOf('Class_I_am_Looking_For') > = 0)
puede verificar fácilmente la existencia de una clase específica y aún manejar múltiples clases.if(className.indexOf('Class_I_am_Looking_For') > = 0)
también coincidirá"This_Is_Not_the_Class_I_am_Looking_For"
Es mejor usarlo
.hasClass()
cuando desea verificar si un elemento tiene un particularclass
. Esto se debe a que cuando un elemento tiene múltiplesclass
no es trivial verificarlo.Ejemplo:
Dónde:
Con
.hasClass()
podemos probar sidiv
tiene la clasedivhover
.fuente
.is('.divhover')
Tenga cuidado, tal vez, tiene una clase y una subclase.
Si usa soluciones anteriores, tendrá:
Entonces, si desea tener el selector de clase , haga lo siguiente:
y tendrás
Ahora, si desea seleccionar todos los elementos que tienen la misma clase, como div arriba:
eso significa
Actualización 2018
O puede implementarse con JavaScript de vainilla en 2 líneas:
fuente
'.'+$('#id').attr('class').split(/[ \n\r\t\f]+/).join('.')
, porque el espacio, Tab, LF, CR y FF pueden separar clases. (.split()
también acepta RegExps.)'.'+$('#id').attr('class').split(/\s+/).join('.')
sería más conciso, ¿no? ¿O eso coincidiría con algo en lo que no estoy pensando?.attr('class').trim().split(...)
Esto es para obtener la segunda clase en múltiples clases usando un elemento
fuente
simplemente puedes usar,
var className = $('#id').attr('class');
fuente
Si
<div>
tiene unid
:...puedes probar:
Si
<div>
solo tiene unclass
, puede probar:fuente
Si va a utilizar la función de división para extraer los nombres de las clases, deberá compensar las posibles variaciones de formato que podrían producir resultados inesperados. Por ejemplo:
produce
Creo que es mejor usar una expresión regular para que coincida en el conjunto de caracteres permitidos para los nombres de clase. Por ejemplo:
produce
La expresión regular probablemente no esté completa, pero espero que entiendas mi punto. Este enfoque mitiga la posibilidad de un formato deficiente.
fuente
Para completar la respuesta de Whitestock (que es lo mejor que encontré) hice:
Entonces, para "myclass1 myclass2" el resultado será '.myclass1 .myclass2'
fuente
Puede obtener el nombre de la clase de dos maneras:
O
fuente
Con Javascript
Con jQuery
O
fuente
Si no conoce el nombre de la clase PERO conoce la ID, puede intentar esto:
Luego llámalo usando:
fuente
Si desea obtener clases de div y luego desea verificar si existe alguna clase, entonces simplemente use.
p.ej;
fuente
Intentalo
HTML
jQuery
fuente
si tenemos solo o queremos el primer
div
elemento podemos usar$('div')[0].className
de lo contrario necesitamos unoid
de ese elementofuente
Si tenemos un código:
para tomar el nombre de la clase usando jQuery podríamos definir y usar un método de complemento simple:
o
El uso del método será:
Tenemos que notar que devolverá una lista de clases a diferencia del método nativo element.className que devuelve solo la primera clase de las clases adjuntas. Debido a que a menudo el elemento tiene más de una clase adjunta, le recomiendo que no use este método nativo sino element.classlist o el método descrito anteriormente.
La primera variante devolverá una lista de clases como una matriz, la segunda como una cadena - nombres de clase separados por espacios:
Otro aviso importante es que tanto los métodos como el método jQuery
solo se devuelve la lista de clases del primer elemento capturado por el objeto jQuery si utilizamos un selector más común que señala muchos otros elementos. En tal caso, tenemos que marcar el elemento, queremos obtener sus clases, usando algún índice, por ejemplo
Depende también de lo que necesite hacer con estas clases. Si solo desea verificar una clase en la lista de clases del elemento con esta identificación, debe usar el método "hasClass":
como se menciona en los comentarios anteriores. Pero si necesita tomar todas las clases como selector, use este código:
El resultado será:
y podría hacer que cree dinámicamente una regla css de reescritura específica, por ejemplo.
Saludos
fuente
Esto tambien funciona.
fuente
La mejor manera de obtener el nombre de la clase en javascript o jquery
attr()
La función de atributo se utiliza para obtener y establecer el atributo.fuente
usar así: -
si ha usado esta clase más de una vez, use cada operador
fuente