it-swarm.com.de

Bestimmen Sie mit jQuery, ob ein Element eine CSS-Klasse hat

Ich arbeite mit jQuery und suche nach einer einfachen Möglichkeit, festzustellen, ob dem Element eine bestimmte CSS-Klasse zugeordnet ist.

Ich habe die ID des Elements und die CSS-Klasse, nach der ich suche. Ich muss nur in der Lage sein, in einer if-Anweisung einen Vergleich auf der Grundlage der Existenz dieser Klasse für das Element durchzuführen.

173
Mitchel Sellers

Verwenden Sie die Methode hasClass:

jQueryCollection.hasClass(className);

oder

$(selector).hasClass(className);

Das Argument ist (offensichtlich) eine Zeichenfolge, die die zu überprüfende Klasse darstellt, und es gibt einen Booleschen Wert zurück (daher wird das Verketten wie bei den meisten jQuery-Methoden nicht unterstützt).

Hinweis: Wenn Sie ein className-Argument übergeben, das Leerzeichen enthält, wird es buchstäblich mit der Zeichenfolge className der Auflistungselemente abgeglichen. Also, wenn Sie zum Beispiel ein Element haben,

<span class="foo bar" />

dann gibt dies true zurück:

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

und diese geben false zurück:

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

aus der FAQ

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

oder:

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

Was die Verneinung betrifft, wenn Sie wissen möchten, ob ein Element keine Klasse hat, können Sie einfach das tun, was Mark gesagt hat.

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

Um allen zu helfen, die hier landen, aber tatsächlich nach einer jQuery-freien Möglichkeit suchen, dies zu tun:

element.classList.contains('your-class-name')
3
Derek Ekins

Ohne jQuery:

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

Oder:

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');

Dies ist viel schneller als jQuery!

3
Ismael Miguel

Überprüfen Sie die offizielle jQuery FAQ Seite:

Wie teste ich, ob ein Element eine bestimmte Klasse hat oder nicht

0

In meinem Fall habe ich die jQuery-Funktion 'is' verwendet. Ich habe ein HTML-Element mit verschiedenen CSS-Klassen hinzugefügt. Ich habe nach einer bestimmten Klasse in der Mitte gesucht Eine Klasse, die dynamisch zu einem HTML-Element hinzugefügt wird, das bereits über andere CSS-Klassen verfügt, ist eine weitere gute Alternative.

einfaches Beispiel:

 <!--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');

erweitertes Beispiel:

 <!--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();
    }
0
Eduardo Paz
 $('.segment-name').click(function () {
    if($(this).hasClass('segment-a')){
        //class exist
    }
});
0
vineet