Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich CSS-Klassenregeln mit jQuery dynamisch ändern, ohne das DOM zu berühren?

Wie kann ich CSS-Klassenregeln mit jQuery dynamisch ändern, ohne das DOM zu berühren?

Barbara Streisand
Barbara StreisandOriginal
2024-11-01 23:58:29635Durchsuche

How can I dynamically change CSS class rules using jQuery without touching the DOM?

CSS-Klassenregeln dynamisch mit jQuery ändern

Frage 1: Klassenregeln im Handumdrehen ändern

So ändern Sie die Schriftgröße einer benannten CSS-Klasse „.classname“ mit jQuery, ohne Inline-CSS hinzuzufügen oder das DOM direkt zu manipulieren, befolgen Sie diese Schritte:

<code class="javascript">// Get the CSS stylesheet
var styleSheet = document.styleSheets[0];

// Loop through the CSS rules within the stylesheet
for (var i = 0; i < styleSheet.cssRules.length; i++) {
    // Check if the current rule is for the ".classname" class
    if (styleSheet.cssRules[i].selectorText === ".classname") {
        // Set the new font size for the rule
        styleSheet.cssRules[i].style.fontSize = "16px";
    }
}</code>

Frage 2: Klassenänderungen in einer Datei speichern

Um das geänderte CSS zu speichern Wenn Sie Klassenregeln in eine Datei kopieren möchten, müssen Sie eine Ajax-POST-Anfrage an den Server erstellen.

<code class="javascript">// Build a string containing the updated CSS declarations
var updatedCSS = "";
for (var i = 0; i < styleSheet.cssRules.length; i++) {
    updatedCSS += styleSheet.cssRules[i].selectorText + " {\n";
    for (var j = 0; j < styleSheet.cssRules[i].style.length; j++) {
        updatedCSS += "    " + styleSheet.cssRules[i].style[j] + ": " + styleSheet.cssRules[i].style.getPropertyValue(styleSheet.cssRules[i].style[j]) + ";\n";
    }
    updatedCSS += "}\n";
}

// Send the updated CSS to the server
$.ajax({
    type: "POST",
    url: "/save-css",
    data: { updatedCSS: updatedCSS }
});</code>

Erstellen Sie auf der Serverseite ein Skript, um das empfangene aktualisierte CSS in einer Datei zu speichern.

Zusätzliche Hinweise

  • Der erste Ansatz wirkt sich nicht auf die externe CSS-Datei aus, sondern ändert nur die CSS-Regeln im Speicher, sodass sie nach der Seitenaktualisierung nicht bestehen bleiben.
  • Für eine browserübergreifende Kompatibilität sollten Sie die Verwendung eines jQuery-Plugins in Betracht ziehen, das die Bearbeitung von CSS-Regeln vereinfacht.

Das obige ist der detaillierte Inhalt vonWie kann ich CSS-Klassenregeln mit jQuery dynamisch ändern, ohne das DOM zu berühren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn