Ich habe ein bestimmtes Stylesheet für eine Div. Jetzt möchte ich ein Attribut von div dynamisch mit js ändern.
Wie kann ich es tun?
document.getElementById("xyz").style.padding-top = "10px";
Ist das richtig?
quelle
Ich habe ein bestimmtes Stylesheet für eine Div. Jetzt möchte ich ein Attribut von div dynamisch mit js ändern.
Wie kann ich es tun?
document.getElementById("xyz").style.padding-top = "10px";
Ist das richtig?
Es ist fast richtig.
Da -
es sich um einen Javascript-Operator handelt, kann dies in Eigenschaftsnamen nicht wirklich vorkommen. Wenn Sie eine Einstellung border
oder etwas Ähnliches verwenden würden, würde Ihr Code einwandfrei funktionieren.
Das, woran Sie sich jedoch für padding-top
und für jeden Attributnamen mit Bindestrich erinnern müssen , ist, dass Sie in Javascript den Bindestrich entfernen und den nächsten Buchstaben in Großbuchstaben schreiben, in Ihrem Fall also paddingTop
.
Es gibt einige andere Ausnahmen. JavaScript enthält einige reservierte Wörter, sodass Sie diese beispielsweise nicht festlegen können float
. Stattdessen müssen Sie in einigen Browsern cssFloat
und in anderen verwenden styleFloat
. Für solche Unstimmigkeiten wird empfohlen, ein Framework wie jQuery zu verwenden, das Browser-Inkompatibilitäten für Sie behandelt ...
Wenn Sie die Strichnotation für Stileigenschaften verwenden möchten, können Sie neben anderen Antworten auch Folgendes verwenden:
document.getElementById("xyz").style["padding-top"] = "10px";
document.getElementById("xyz").style["paddingTop"] = '10px'
.Ich löse ein ähnliches Problem mit:
Hoffentlich hilft das.
quelle
0
. Und manchmal willst du das nicht.Es gibt auch eine
style.setProperty
Funktion:https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/setProperty
quelle
Angenommen, Sie haben HTML wie folgt:
Wenn Sie das Stilattribut dieses Div ändern möchten, verwenden Sie
Ersetzen
[ATTRIBUTE]
Sie durch das gewünschte Stilattribut. Denken Sie daran, '-' zu entfernen und den folgenden Buchstaben in Großbuchstaben zu schreiben.Beispiele
quelle
float
.wird sein
quelle
Ich würde empfehlen, eine Funktion zu verwenden, die die Element-ID und ein Objekt mit den CSS-Eigenschaften akzeptiert, um dies zu handhaben. Auf diese Weise schreiben Sie mehrere Stile gleichzeitig und verwenden die Standard-CSS-Eigenschaftssyntax.
Besser noch, Sie könnten die Stile in einer Variablen speichern, was die Verwaltung von Immobilien erheblich vereinfacht, z
hoffentlich hilft das
quelle
Überrascht, dass ich die unten stehende Lösung für den Abfrageselektor nicht gesehen habe.
CSSStyleDeclaration- Lösungen, ein Beispiel für die akzeptierte Antwort
quelle
würde auch den Job machen.
quelle
funktioniert bei mir
quelle