Hallo,
Hm, es schein, als stände in arrSubMenu[i] ein String, welcher eine ID repräsentieren soll.
Das ist richtig.
Damit kann
eval(arrSubMenu[i] + ".style.backgroundColor = '#e3e3e3'");
nur zufällig funktionieren, weil [ID].style nach keiner Regel die style-Eigenschaft eines HTML-Elementes ansprechen muss.
Sondern welche andere Eigenschaft?
Der Code ist also nicht nur evil, sondern falsch.
Hm ... das verstehe ich nicht. Er hat aber auf alle Fälle funktioniert ;-)
Hm, das mit dem document.all meinst Du ernst?
Ja.
Ich muss die IEs extra berücksichtigen. Ein nur W3C-DOM variante wäre mir auch lieber.
Aber es geht auch so:
Habe ich auch gehabt.
Hatte vorher das auch mit eval() gemacht, vor allem weil es auch noch Teile gibt wo ich ein "getElementById('abc_' + arrSubMenu[i]).style" brauche.
Dann wollte ich eval() weghaben und gleichzeitig den Code etwas weniger redudant machen; deshalb with().
Was ist der wirkliche Unterschied? (und ich meine jetzt nicht die Tatsache, dass ich der zweiten Version mehrere Anweisungen an einem Objekt knüpfen kann)
Fragen wir doch mal anders herum:
Nenne Gründe, die von mir vorgeschlagende Methode _nicht_ und statt dessen eval() zu nutzen.
Nun ... kann ich nicht, aber genau deshalb habe ich nachgefragt ;-)
Grüße
Thomas