Ich arbeite an einem Skript, das dynamisch eine Gruppe von Schaltflächen erstellt, die alle mit einem Klassenattribut erstellt werden, damit ich sie stylen kann. Aber das Styling hat nie funktioniert.Können Elementattribute über eine Punktnotation in Javascript aufgerufen werden?
Ich fügte den Klassenwert wie folgt hinzu: Dabei ist button
eine Referenz auf das Element <button>
im DOM.
änderte ich den obigen Code zu button.setAttribute("class", "foo");
und es funktioniert!
Aber das hat mich verwirrt, weil ich die Punktschreibweise (oder Objekteigenschaftsschreibweise? Ich weiß nicht, wie man es nennen soll) andere Werte, wie das Attribut value
setzen.
Zum Beispiel habe ich einen Ereignis-Listener auf einige Tasten. Wenn sie angeklickt werden, wird das Attribut value
dem Element hinzugefügt. Wenn es erneut geklickt wird, wird es entfernt:
button.onclick = function() {
if (this.value)
this.removeAttribute("value");
else
this.value = "bar";
}
Das obige funktioniert wie erwartet.
Also meine Frage ist - warum ist es, dass Bezeichnungen wie button.class = "foo";
scheinen mit einigen Attributen zu arbeiten und nicht mit anderen? Und gibt es eine Möglichkeit zu finden, welche Attribute sich mit dieser Notation richtig verhalten?
Hallo, vielen Dank! Wo finde ich einen Verweis auf alle anderen Attribute, auf die auf diese Weise zugegriffen werden kann? – Manuel
@Manuel, https://developer.mozilla.org/en-US/docs/Web/API/Element – Satpal
Danke für die Freigabe, aber die Webseite sagt nichts über eine "Wert" -Eigenschaft. Wie funktioniert etwa "button.value = 'bar';" Arbeit? Zu welcher API gehört die Eigenschaft "value"? – Manuel