Ich kann die Opacity von einem <div> auf "root"-Ebene im IE verändern, sobald ich aber ein unterelement versuche zu verändern, macht das nix mehr,
was heißt "macht das nix mehr?"
Aber in deinem Code sind ein paar unsauberkeiten
<div id="Q1Button2"><a href="#" onClick="javascript:Button(1,2); return false;">Button 2</a></div>
Das Label 'javascript:' ist hier unnötig. Wozu überhaupt der Link?
function Button(q, b) {
eval("b1 = 'Q" + q + "Button1'"); eval("b2 = 'Q" + q + "Button2'");
Wozu eval()?
Einen String kannst du auch ohne zusätziches eval verknüpfen oder erwartest du Javascript Code im q oder b?
x.style.filter = "Alpha(opacity=" + eval(o * 100) + ")";
Auch das eval ist überflüssig.
Struppi.