Hi,
function clonit(maxi)
{
// variabeles Klonexperiment
if(!maxi){var maxi = 3;}
var objmutter = document.getElementById('clonable');
var objkind1 = objmutter.firstChild;
var objkindlast = objmutter.lastChild;
var anzahl = objmutter.childNodes.length;
if(anzahl >= maxi){return false;}
if(maxi=='del'){
if(anzahl >1 ){objmutter.removeChild(objkindlast);}
return true;
}
var neu = '<tr><td>a</td><td>b</td><td>c</td></tr>';
var alt = objmutter.innerHTML;
objmutter.innerHTML= alt+neu;
return false;
}
<p>
<button type="button" onclick="clonit(5)">+</button>
<button type="button" onclick="clonit('del')">-</button>
</p>
<table border="3" id="clonable"><tr><td>a</td><td>b</td><td>c</td></tr></table>
Das funktioniert im FF ohne Fehler. Im IE8 allerdings nicht und der Fehler lautet:
----------------------------------------
Meldung: Unbekannter Laufzeitfehler
Zeile: 37
Zeichen: 1
Code: 0
URI: ***********.html
----------------------------------------
Das bezieht sich dann wohl auf: objmutter.innerHTML= alt+neu;
Wenn ich aber anstatt einer Tabllenzeile ein DIV nehme, dann geht es auch im IE:
// in der Funktion
var neu = '<p>a|b|c</p>';
// Im HTML
<div id="clonable"><p>a|b|c</p></div>
Wie kommt das zustande?
Mike
ps. Fragt nicht warum ich das so gelöst habe, die eigentliche Funktion ist sehr viel umfangreicher, und hier habe ich nur alles reduziert für die Fehlerreproduktion. Will sagen, natürlich könnte ich das Problem auch umgehen, aber darum geht es nicht.