document.all.+variable+.style
Hallo
die Überschrift deutet es schon an. Ich habe in einem Script das:
document.all.container.style
Damit wird ein Div Element verändert. Nun möchte ich diese Funktion so umschreiben das mehrere Div-Elemente verändert werden können.
Dafür muss im Script (dort wo container steht) eine Variable stehn.
Leider sind meine Ansätze allesamt gescheitert. Ich würde mich sehr freuen wenn mir jemand einen Tip geben könnte.
Antwort schreiben
Antwort 1 von solange vom 01.06.2019, 12:37 Options
wenn es alle divs sein sollen, kannst du diese über den array "getElementsByTagName()" ansprechen. wenn nur bestimmte divs gemeint sind, gebe diesen denselben namen. dann kannst du mittels "getElementsByName()" auf sie zugreifen.
Antwort 2 von rfb vom 01.06.2019, 13:00 Options
Zitat:
document.all.container.style
trenn dich zuerst von
all - das ist und war kein Standard!
Die Lösung liegt - wie solange schon andeutete - in der
Nutzung einer der Möglichkeiten des DOM um Elemente anzusprechen.
Hierbei kämen
getElementById() (HTML-Elementzugriff über id-Attribut)
getElementsByName() (HTML-Elementzugriff über name-Attribut)
getElementsByTagName() (HTML-Elementzugriff über Elementliste)
in Betracht. Welche Möglichkeit sinnvoller ist musst du selbst entscheiden. Du findest sie unter den
Methoden des document-Elements bei SelfHTML genauer beschrieben.
@solange: das ist kein Array sondern eine Elementliste!
Antwort 3 von Friedel vom 01.06.2019, 13:01 Options
Das mit den Namen ist keine gute Idee. Das name-Attribut darf nur in den Elementen a, applet, form, frame, img, input, iframe, map, meta, object, param, select und textarea verwendet werden.
Antwort 4 von eisbärbaby vom 01.06.2019, 13:09 Options
danke erstmal
ich hole mal weiter aus.
Ich wollte einen Div-Container verschieben. Wenn man draufklickt folgt das Ding der Maus. Klickt man wieder, schaltet sich die Funktion ab. Dabei habe ich mich an den Beispielscripten für Mausverfolger orientiert. Das funktioniert soweit auch ganz gut. Mitlerweile sogar im FF und IE :-).
Nun habe ich dabei nicht bedacht das der Name des Div fest im Javascript drinsteht. Ich bräuchte also eine Lösung um entweder im Script
document.all.+variable+.style;
zu schreiben oder am anfang sowas zu definieren:
var A="anderercontainer";
var X = "document.all."+A+".style"; um den Namen beim Aufruf der Funktion mit zu übergeben und im Script das
document.all.container.style durch X zu ersetzen.
beides funktioniert aber leider nicht.
Antwort 5 von solange vom 01.06.2019, 13:10 Options
@rfb
diese elementliste ist genauso ein array, wie eine polizistin eine frau ist.
Antwort 6 von eisbärbaby vom 01.06.2019, 15:54 Options
getElementById! *andenkopfklatsch*
manchmal sehe ich den Wald vor lauter Bäumen nicht.
Aber jetzt funktioniert das ganze.
vielen Dank. nochmal
Antwort 7 von rfb vom 01.06.2019, 16:56 Options
@solange
bedauerlicherweise irrst du einfach. Elementlisten ähneln zwar Arrays insofern die Zugriffs-Syntax oft dieselbe ist, aber das wars auch schon. Schon bei der Erstellung neuer Array-Elemente und neuer Elemente im Dokumentenbaum gibt es himmelweite Unterschiede.
Polizistinnen ähneln aber nicht nur Frauen sondern sind tatsächlich selber welche.
Antwort 8 von solange vom 01.06.2019, 17:41 Options
ich denke, ich weiss, was du meinst. für dich ist nur das ein array, was unter js genau diesen namen trägt. für mich ist es ein allgemeines prinzip, welches in verschiedenen formen und vielen programmiersprachen existiert und erkennbar ähnliche eigenschaften hat. dir geht es um korrekte bezeichnung, mir um verständlichkeit.
Zitat:
Polizistinnen ähneln aber nicht nur Frauen sondern sind tatsächlich selber welche.
polizistinnen sind aber nicht identisch mit frauen. je nach kontext offenbaren sich die unterschiede. so wie zwischen elementlisten und anderen arrays.
Antwort 9 von rfb vom 01.06.2019, 23:09 Options
das hat weniger mit korrekter Bezeichnung zu tun, sondern einfach damit, dass du durch falsche Systematik verleitest wirst falsche Methoden anwenden zu versuchen. Und die Methoden des Array-Element lassen sich auf Elementlisten nun mal gar nicht anwenden!
Zitat:
polizistinnen sind aber nicht identisch mit frauen
nein sie sind eine Untermenge, was die Beziehung zwischen Arrays und Elementlisten nicht widerspiegelt.