Hi,
Wenn Du mit Javascript programmieren willst, solltest Du Dich teilweise vom HTML-Denken lösen (können). Ein Objekt hat (immer) bestimmte Eigenschaften - deren Werte Du teilweise ändern bzw. beeinflussen kannst. Du solltest aber - zumindest bei Objekten, die HTML-Elemente repräsentieren - (fast) *niemals* daran denken, die Eigenschaften der Objekte (= Attribute in HTML) selbst zu entfernen, neue dazuzudichten o.ä. ...
Da ist wieder einer. Ein was?
Einer dieser Absätze, deren Worte ich wohl lese und die sehr verständlich klingen. Aber es ist, wie in einer anderen Sprache geschrieben. Ich verstehe den Inhalt des Absatzes nicht.
Trotzdem solltest du wissen, was wir von dir, *wenn* du etwas nicht verstehst, eine etwas detailiertere Beschreibung erwarten, *wo* *genau* denn nun dein Verständnisproblem liegt.
Wenn du uns mitteilst, was du daran nicht verstehst, bzw. wo dein Verständnisproblem in etwa liegt - dann wissen die Mitleser auch genauer, welcher Punkt noch mal einer Umformulierung bedarf, um verständlicher zu sein - eine Reaktion, die nur ein etwas prosaischeres "Hä, Bahnhof?" ist, leistet das nicht.
Ich versuche es noch mal anders zu formulieren:
Generell sind setAttribute/removeAttribute bzw. auch createAttribute/setAttributeNode/removeAttributeNode vom OO-Ansatz her der (/ein) korrekter Weg, um Objekten neue Attribute zu verpassen bzw. Attribute oder Attributwerte zu entfernen/löschen.
Problem ist im vorliegenden Umfeld aber, dass wir nicht alle Objekte selbst erstellen und mit Attributen ausstatten - sondern das beim Arbeiten auf dem DOM die Objekte "schon da" sind, nämlich die HTML-Element-Objekte, die die JavaScript-Repräsentation unserer HTML-Elemente darstellen.
Und die haben schon "von Haus aus" bestimmte Attribute - bei Formularelementen bspw. das disabled, oder auch name, type und value.
Und manche Browser reagieren verschnupft, wenn man solche Attribute per setAttribute o.ä. Erstellen und Setzen will - insb. der IE ist hier ein Kandidat, der dabei immer mal wieder Mucken macht.
Und deshalb ist es in der Praxis günstiger, bei "bekannten" [1] Attributen immer den simplen Weg
elementReferenz.attributname = wert;
zu gehen, um den Wert eines solchen Attributes zu setzen.
Der andere Weg ist zwar, wie gesagt, in der Theorie ebenfalls korrekt (ich will nicht sagen, *der* richtige) - macht aber in der Praxis leicht Probleme.
MfG ChrisB
[1] http://de.selfhtml.org/javascript/objekte/htmlelemente.htm gibt eine Übersicht, welche Attribute man bzgl. HTML-Element-Objekten als "bekannte" betrachten kann.
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]