jQuery ändert die CSS-Klasse in div

Lesezeit: 3 Minuten

Benutzer-Avatar
eomeroff

Wenn ich zum Beispiel ein div-Element habe und die Klasse „first“ mit vielen CSS-Eigenschaften definiert ist. Kann ich die CSS-Klasse ‘zweite’ zuweisen, die auch viele Eigenschaften hat, die diesem div nur bei einem Ereignis unterschiedlich definiert sind, ohne jede Eigenschaft in Zeile zu schreiben.

Ja, leicht.

$("#mydiv").attr("class", "second");

  • Dadurch wird die Klasseneigenschaft überschrieben und die „erste“ Klasse aus dem div entfernt. Ich glaube, der Benutzer möchte, dass das div sowohl die „erste“ als auch die „zweite“ Klasse hat.

    – Annabelle

    2. Dezember 2009 um 20:19 Uhr

  • Bei einem Ereignis zum Beispiel klicken Sie auf, ich möchte, dass div ein anderes Aussehen hat, dh ich brauche eine andere Klasse. Ich würde lieber zwei Klassen auf div “first seconf” (wie Daff oben schrieb) vermeiden, weil ich mich dann mit Priorität befassen könnte. Würde ich?? Noch etwas, $(“#mydiv”).attr(“class”, “second”); macht diese Codezeile sowohl addClass als auch removeClass ?? könnte es geschrieben werden $(.first”).attr(“class”, “second”); ??

    – eomeroff

    2. Dezember 2009 um 20:28 Uhr

  • Mein Verständnis der Frage war, dass er die Klasse ändern und keine weiteren Klassen hinzufügen wollte.

    – Puh

    2. Dezember 2009 um 20:57 Uhr

  • @SonOfOmer – ja, es macht beides. Es entfernt im Wesentlichen alle Klassen und ersetzt sie durch “zweite”.

    – Puh

    2. Dezember 2009 um 20:58 Uhr

  • Ja, der Klassenwechsel war die ursprüngliche Frage, aber ich erweitere meine Frage, nachdem ich einige Antworten tnks gelesen habe

    – eomeroff

    2. Dezember 2009 um 21:10 Uhr

$(".first").addClass("second");

Wenn Sie es zu einer Veranstaltung hinzufügen möchten, können Sie dies ebenfalls ganz einfach tun. Ein Beispiel mit dem Click-Event:

$(".first").click(function() {
    $(this).addClass("second");
});

  • +1 für die Demonstration eines Ereignishandlers. Vielleicht könnten Sie ihm eine Mouseover/Mouseout-Kombination zeigen, um die zweite Klasse sowohl hinzuzufügen als auch zu entfernen 🙂

    – Corey Ballou

    2. Dezember 2009 um 20:12 Uhr

  • Anstatt Klassen bei Mouseover/Mouseout hinzuzufügen/zu entfernen, versuchen Sie, den CSS-Selektor :hover zu verwenden. ZB: “first:hover”.

    – WhyNotHugo

    7. April 2014 um 3:27 Uhr

Sie können Klassen mit jQuery wie folgt hinzufügen und entfernen:

$(".first").addClass("second")
// remove a class
$(".first").removeClass("second")

Übrigens können Sie in Ihrem Markup gleich mehrere Klassen getrennt mit einem Whitespace setzen

<div class="second first"></div>

Benutzer-Avatar
Carvell Fenton

Dies ist möglicherweise nicht ganz zielführend, da mir nicht ganz klar ist, was Sie tun möchten. Angenommen, Sie möchten einem div als Reaktion auf ein Ereignis eine andere Klasse zuweisen, dann lautet die Antwort ja, Sie können dies sicherlich mit jQuery tun. Ich bin nur ein jQuery-Anfänger, aber ich habe Folgendes in meinem Code verwendet:

$(document).ready(function() {
    $("#someElementID").click(function() {  // this is your event
        $("#divID").addClass("second");     // here your adding the new class
    )}; 
)};

Wenn Sie die erste Klasse durch die zweite Klasse ersetzen möchten, würden Sie meiner Meinung nach zuerst removeClass und dann addClass verwenden, wie ich es oben getan habe. toggleClass kann auch einen Blick wert sein. Die jQuery-Dokumentation ist für diese Art von Änderungen gut geschrieben, mit Beispielen.

Jemand anderes kann eine bessere Option haben, aber ich hoffe, das hilft!

Ein HTML-Element wie div kann mehr als eine Klasse haben. Angenommen, div werden mit der addClass-Methode zwei Stile zugewiesen. Wenn style1 3 Eigenschaften wie Schriftgröße, Gewicht und Farbe hat und style2 4 Eigenschaften wie Schriftgröße, Gewicht, Farbe und Hintergrundfarbe hat, hat der resultierende effektive Eigenschaftensatz (Stil) meiner Meinung nach 4 Eigenschaften dh union aller Stilrichtungen. Gemeinsame Eigenschaften, in unserem Fall Farbe, Schriftgröße, Gewicht, werden mit den neuesten Werten einmal vorkommen. Wenn div zuerst style1 und dann style2 zugewiesen wird, werden die gemeinsamen Eigenschaften durch style2-Werte überschrieben.

Weiter habe ich einen Beitrag unter geschrieben Verwenden von JQuery zum Anwenden, Entfernen und Verwalten von StilenIch hoffe es hilft dir

Grüße Awais

Benutzer-Avatar
Virang Maniar

$(document).ready(function () {

            $("#divId").toggleClass('cssclassname'); // toggle class
});

**OR**

$(document).ready(function() {
        $("#objectId").click(function() {  // click or other event to change the div class
                $("#divId").toggleClass("cssclassname");     // toggle class
        )}; 
)};

1246030cookie-checkjQuery ändert die CSS-Klasse in div

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy