Axel Richter: Warum wird eval() so verpönt?

Beitrag lesen

Hallo,

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?

Keine definierte.

Gegeben sei folgendes HTML-P-Element, durch einen Tag beschrieben:
...
<p id = "TestID">Test</p>
...
Du versuchst mit JavaScript auf die style-Eigenschaft eines solchen Elementes zuzugreifen:
...
TestID.style.backgroundColor = "#e3e3e3";
...
Das ist _so_ nirgendwo beschrieben. Beschrieben ist:
1. lt. DOM
document.getElementById("TestID").style.backgroundColor = "#e3e3e3";
2. für Browser, welche ein document.all-Objekt kennen:
document.all["TestID"].style.backgroundColor = "#e3e3e3";
mit allen alternativen Schreibweisen.

Der Code ist also nicht nur evil, sondern falsch.
Hm ... das verstehe ich nicht. Er hat aber auf alle Fälle funktioniert ;-)

*g* Du kennst Cheatahs Meinung zu der Aussage: "Es muss ja richtig sein, weil es ja schließlich funktioniert."? Sie deckt sich mit meiner.

viele Grüße

Axel