5 Stimmen

Wie man überprüft, ob ein div in jQuery eine Klasse aus mehreren Klassen hat

Ich habe ein dynamisches Div, das über 1000 verschiedene Klassen generieren kann ... es handelt sich um ein WordPress-Theme.

Jetzt möchte ich überprüfen, ob ein Div eine von 52 Klassen hat.

.bg1, .bg2, .bg3 usw...

Ich weiß, dass man hasClass(); verwenden kann;

Aber wie überprüfe ich das für jede einzelne und erhalte dann den Wert. Hier ist zum Beispiel das Div, wie es jetzt aussieht

Bitte beachten Sie, dass ich jquery nicht wirklich beherrsche :D

Ich dachte, es wäre etwas wie das hier, aber logisch macht das für mich keinen Sinn :(

var divclass = $("#wordpresspost").hasClass('bg1, bg2, bg3, bg4, bg5, bg6');

if(divclass == true){
    var divsclass = $(this);
}

Ich muss die Klasse kennen, weil ich sie ändern will, zum Beispiel würde ich gerne .removeClass verwenden und dann einer neuen Klasse hinzufügen, ohne die anderen zu ändern, da sie dynamisch sind

Vielen Dank im Voraus für den Rat :)

14voto

Joe Punkte 15145

Verwenden Sie .is():

var divclass = $("#wordpresspost").is('.bg1, .bg2, .bg3, .bg4, .bg5, .bg6');

5voto

PSL Punkte 123034

Sie können den Starts with Selector verwenden.

Der Haken dabei ist, dass falls Sie eine andere Klasse haben, die mit bg[something] beginnt, würde dies beeinträchtigt werden

if($("#wordpresspost[class^=bg]").length > 0)
{
....
}

Um sie zu entfernen, könnte regex wahrscheinlich helfen.

$("#wordpresspost[class^=bg]").each(function(){
     this.className = this.className.replace(/\bbg.*?\b/g, 'neueklasse');
});

0voto

Paul Punkte 134955
var el = document.getElementById('wordpresspost');
var regxpr = /\b(bg(?:[1-9]|[1-4]\d|5[0-2]))\b/g, match;
while(match = regxpr.exec(el.className)){
    // match[1] enthält die aktuell übereinstimmende Klasse
    console.log(match[1]);
    // Danach können Sie tun:
        $(el).removeClass(match[1]).addClass(ErsatzFürMatch);
}

JSFiddle

-1voto

Luke Punkte 7920

Wenn Sie nach bg* in nur einem Element suchen, könnten Sie einfach regex verwenden.

 var hasBg = /bg[\d]+/.test(document.getElementById("mydiv").className);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X