javascript - name - jquery selector class contains
Obtener el nombre de la clase usando jQuery (14)
Quiero obtener el nombre de la clase usando jQuery
Y si tiene una identificación.
<div class="myclass"></div>
Después de obtener el elemento como objeto jQuery por otro medio que no sea su clase, entonces
var className = $(''#sidebar div:eq(14)'').attr(''class'');
debe hacer el truco Para la identificación use .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:
this.className // for classes, and
this.id // for IDs
Ambos son métodos estándar de DOM y están bien soportados en todos los navegadores.
Es mejor usar .hasClass()
cuando quiere verificar si un elemento tiene una class
particular. Esto se debe a que cuando un elemento tiene varias class
no es trivial verificarlo.
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
Esto es para obtener la segunda clase en varias clases usando un elemento
var class_name = $(''#videobuttonChange'').attr(''class'').split('' '')[1];
Para completar la respuesta de Whitestock (que es lo mejor que encontré) hice:
className = $(this).attr(''class'').match(/[/d/w-_]+/g);
className = ''.'' + className.join('' .'');
Entonces, para "myclass1 myclass2" el resultado será ''.myclass1 .myclass2''
Puedes obtener el nombre de la clase de dos maneras:
var className = $(''.myclass'').attr(''class'');
O
var className = $(''.myclass'').prop(''class'');
Si desea obtener clases de div y luego quiere comprobar si existe alguna clase, entonces use de forma simple.
if ( $(''#div-id'' ).hasClass( ''classname'' ) ) {
// do something...
}
p.ej;
if ( $(''body'').hasClass( ''home'' ) ) {
$(''#menu-item-4'').addClass(''active'');
}
Si no conoce el nombre de la clase PERO conoce la ID, puede intentar esto:
<div id="currentST" class="myclass"></div>
Entonces llámalo usando:
alert($(''#currentST'').attr(''class''));
Si su <div>
tiene una id
:
<div id="test" class="my-custom-class"></div>
...puedes probar:
var yourClass = $("#test").prop("class");
Si su <div>
tiene solo una class
, puede intentar:
var yourClass = $(".my-custom-class").prop("class");
Si tenemos solo o queremos primer elemento div
podemos usar
$(''div'')[0].className
contrario necesitamos un id
de ese elemento
Si va a usar la función de división para extraer los nombres de clase, entonces 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 hacer coincidir en el conjunto de caracteres permitidos para los nombres de clase. Por ejemplo:
" myclass1 myclass2 ".match(/[/d/w-_]+/g);
produce
["myclass1", "myclass2"]
La expresión regular probablemente no sea completa, pero espero que entiendas mi punto. Este enfoque mitiga la posibilidad de un formateo deficiente.
Tenga cuidado, tal vez, usted tiene una clase y una subclase.
<div id=''id'' class=''myclass mysubclass'' >dfdfdfsdfds</div>
Si utiliza soluciones anteriores, tendrá:
myclass mysubclass
Entonces, si quieres tener el selector de clase , haz lo siguiente:
var className = ''.''+$(''#id'').attr(''class'').split('' '').join(''.'')
y tendrás
.myclass.mysubclass
Ahora, si desea seleccionar todos los elementos que tengan la misma clase, como div arriba:
var brothers=$(''.''+$(''#id'').attr(''class'').split('' '').join(''.''))
eso significa
var brothers=$(''.myclass.mysubclass'')
Actualización 2018
O se puede implementar con javascript de vainilla en 2 líneas:
const { classList } = document.querySelector(''#id'');
document.querySelectorAll(`.${Array.from(classList).join(''.'')}`);
simplemente puedes usar,
var className = $(''#id'').attr(''class'');
Intentalo
HTML
<div class="class_area-1">
area 1
</div>
<div class="class_area-2">
area 2
</div>
<div class="class_area-3">
area 3
</div>
jQuery
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script type="application/javascript">
$(''div'').click(function(){
alert($(this).attr(''class''));
});
</script>
<div id="elem" class="className"></div>
Con Javascript
document.getElementById(''elem'').className;
Con jQuery
$(''#elem'').attr(''class'');
O
$(''#elem'').get(0).className;