Wie ändert man das Style-Tag dynamisch mit JavaScript?

8

Ich möchte das style-Tag nach dem Generieren von Inhalten ändern. Wie kann ich dem Stil-Tag Stil hinzufügen? Ich habe versucht mit:

%Vor%

aber es hat nicht funktioniert

    
Damien Golding 13.11.2012, 08:26
quelle

9 Antworten

12

Sie versuchen wahrscheinlich, css zum style-Tag hinzuzufügen. Dies kann erreicht werden mit:

%Vor%

Sie können auch verwenden:

%Vor%     
Asad Saeeduddin 13.11.2012, 08:30
quelle
6

Ich weiß, dass dies eine alte Frage ist, aber ich habe versucht, einen Weg zu finden, diese auch dynamisch zu aktualisieren, ohne das Styling direkt auf das Element anzuwenden.

Wenn Sie einem Style-Tag eine ID geben und sie auswählen, können Sie mit der Sheet-Eigenschaft auf ihr CSS zugreifen.

Von hier aus können Sie alles aktualisieren, was Sie wollen. Indem Sie das gesamte CSS innerhalb des Tags ersetzen oder einzelne Klassen aktualisieren.

%Vor%

Dies ist Ihre Klassenauswahl.

%Vor%

Dies sind alle individuellen CSS-Eigenschaften für diese Klasse.

Sie können die Hintergrundfarbe aktualisieren, indem Sie Folgendes tun:

%Vor%

Dies ist eine Möglichkeit, auf alle Style-Tags in Ihrem HTML-Code zuzugreifen. Leider gibt es keine eindeutige ID für jede CSSStyleRule, die ich finden kann. Am nächsten ist der selectorText, aber offensichtlich kann das wiederholt werden. So oder so zumindest für meine Bedürfnisse, tut dies genau das, was ich brauche.

Sie können auch alle enthaltenen CSS-Dateien aktualisieren, indem Sie document.styleSheets verwenden und im Allgemeinen auf die gleiche Weise darauf zugreifen.

%Vor%

Die href der enthaltenen CSS-Datei.

%Vor%

Alle Klassen im Blatt.

Hoffe das hilft jemandem!

    
AtheistP3ace 18.09.2015 18:33
quelle
6

style ist eine Eigenschaft. Nachdem du getElementById() hast, kannst du style ändern.

HTML:

%Vor%

JS:

%Vor%

usw.

    
Ben 13.11.2012 08:27
quelle
3

A style element hat kein element children, da sein Inhalt definitionsgemäß nur Text ist (was HTML betrifft). Dies bedeutet jedoch, dass Sie den Inhalt einfach mit der Eigenschaft innerHTML anhängen können. Wenn Ihr Element <style id=foo> hat, schreiben Sie:

%Vor%     
Jukka K. Korpela 13.11.2012 08:48
quelle
3

Ich habe ein kurzes Beispiel in Ссылка zusammengestellt.

Sie können eine ID an die Stil-Tags anhängen, genau wie jedes andere Element in HTML.

<style id="style"></style>

Nun können Sie den Code, den Sie ausprobiert haben, mit appendChild übernehmen und eine schnelle Änderung hinzufügen

document.getElementById('style').appendChild(document.createTextNode(styleContents));

Dies sollte den Trick machen. Viel Glück.

Sie können auch die innerHTML-Methode verwenden, die als Antwort unter mir aufgeführt ist.

    
illourr 13.11.2012 09:06
quelle
2

probiere das

aus %Vor%     
silly 13.11.2012 08:29
quelle
1

Warum verwenden Sie die jQuery-Bibliothek nicht und fügen Sie den DOM-Elementen direkt neues CSS hinzu?

Zum Beispiel:

%Vor%

Dies würde einen Rahmen um Ihr Element mit der ID "an_element" hinzufügen.

jQuery-Selektoren

jQuery CSS

    
Alex T 13.11.2012 08:28
quelle
0

Wenn Sie Regeln an ein vorhandenes Stylesheet anhängen möchten, müssen Sie die insertRule-Methoden verwenden. Es wird wahrscheinlich viel einfacher für den Browser sein, als nur Text anzuhängen. Auch wenn Sie es wie folgt tun, wenn eine bestimmte CSS-Regel keine gültige Syntax ist, wird sie übersprungen und somit die Integrität Ihres Dokuments geschützt.

Verwendet jQuery nur für die Zeichenkettenanpassung, wird wahrscheinlich sowieso nicht benötigt.

Sie müssen ihm die ID des Style-Tags geben.

%Vor%     
Noah Ellman 19.02.2017 01:31
quelle
0

Wenn Sie auf @AtheistP3ace antworten, ist hier eine Funktion, die reinen JavaScript verwendet, um den Inhalt eines Stilblocks zu ändern:

%Vor%     
Elliot Labs 27.10.2017 12:46
quelle

Tags und Links