has javascript jquery css

javascript - has - jquery parent



Determine si un elemento tiene una clase de CSS con jQuery (8)

Con el interés de ayudar a cualquiera que aterrice aquí, pero en realidad estaba buscando una forma libre de jQuery de hacer esto:

element.classList.contains(''your-class-name'')

Estoy trabajando con jQuery y estoy buscando si hay una manera fácil de determinar si el elemento tiene una clase de CSS específica asociada.

Tengo la identificación del elemento y la clase de CSS que estoy buscando. Solo necesito poder, en una declaración if, hacer una comparación basada en la existencia de esa clase en el elemento.



En cuanto a la negación, si quieres saber si un elemento no tiene una clase, simplemente puedes hacer lo que dijo Mark.

if (!currentPage.parent().hasClass(''home'')) { do what you want }


En mi caso, utilicé la función ''es'' una jQuery, tenía un elemento HTML con diferentes clases de CSS añadidas, estaba buscando una clase específica en el medio de estas, así que utilicé el "es" una buena alternativa para verificar una clase añadida dinámicamente a un elemento html, que ya tiene otras clases CSS, es otra buena alternativa.

ejemplo simple:

<!--element html--> <nav class="cbp-spmenu cbp-spmenu-horizontal cbp-spmenu-bottom cbp-spmenu-open" id="menu">somethings here... </nav> <!--jQuery "is"--> $(''#menu'').is(''.cbp-spmenu-open'');

ejemplo avanzado:

<!--element html--> <nav class="cbp-spmenu cbp-spmenu-horizontal cbp-spmenu-bottom cbp-spmenu-open" id="menu">somethings here... </nav> <!--jQuery "is"--> if($(''#menu'').is(''.cbp-spmenu-bottom.cbp-spmenu-open'')){ $("#menu").show(); }


Sin jQuery:

var hasclass=!!('' ''+elem.className+'' '').indexOf('' check_class '')+1;

O:

function hasClass(e,c){ return e&&(e instanceof HTMLElement)&&!!(('' ''+e.className+'' '').indexOf('' ''+c+'' '')+1); } /*example of usage*/ var has_class_medium=hasClass(document.getElementsByTagName(''input'')[0],''medium'');

¡Esto es MUCHO MÁS rápido que jQuery!


de las FAQ

elem = $("#elemid"); if (elem.is (".class")) { // whatever }

o:

elem = $("#elemid"); if (elem.hasClass ("class")) { // whatever }


Use el método hasClass :

jQueryCollection.hasClass(className);

o

$(selector).hasClass(className);

El argumento es (obviamente) una cadena que representa la clase que está verificando, y devuelve un valor booleano (por lo que no admite el encadenamiento como la mayoría de los métodos de jQuery).

Nota: Si pasa un argumento className que contiene espacios en blanco, se comparará literalmente con la cadena className los elementos de la colección. Entonces, si, por ejemplo, tienes un elemento,

<span class="foo bar" />

entonces esto volverá true :

$(''span'').hasClass(''foo bar'')

y estos devolverán false :

$(''span'').hasClass(''bar foo'') $(''span'').hasClass(''foo bar'')


$(''.segment-name'').click(function () { if($(this).hasClass(''segment-a'')){ //class exist } });