Walter Zorn: Position dynamisch veränderter Inhalte

Beitrag lesen

Hallo,

Man tausche in einem JS gleich unter dem BODY-Tag über GetElementById(bla).innerHTML den Inhalt des angegebenen Tags aus und wundere sich, warum er ganz oben auf der Seite erscheint.

[...]

<SCRIPT type=text/javascript defer=true>
<!--
function change(flag, loc){
  inhalt = new Array(2);
  inhalt[0] = '<tr><td height="24"><a href="javascript:change(0, '+loc+')"><img src="bg-topic-normal.gif" border=0></a></td><td></td></tr>';
  inhalt[1] = '<tr><td height="24"><a href="javascript:change(1, '+loc+')"><img src="bg-topic-active.gif" border=0></a></td><td></td></tr>';
  if (flag=="0"){document.getElementById("menupunkt"+loc).innerHTML= inhalt[1];}
  if (flag=="1"){document.getElementById("menupunkt"+loc).innerHTML= inhalt[0];}
}
//-->
</SCRIPT>

Aufruf von weiter unten :

<span id="menupunkt1" name="1">
<tr>
<td height="24"><a href="javascript:change(0, 1)"><img src="bg-topic-normal.gif" border="0"></a></td>
<td></td>
</tr>
</span>

Das <span> darf als Inline-Element nicht zwischen <table> und <tr> eingeordnet sein, sondern in deinem Beispiel eigentlich nur innerhalb einer <td>. Alternativ könntest Du die <table> komplett in ein <div id=".."> einschließen und dessen innerHTML ändern. Beides funzt dann zumindest im Moz/NN7 und IE.

Eine weitere Alternative leider nicht im IE: das innerHTML der <table> (also alles ab einschl. <tr>) zu ändern.

Gruß
Walter