Hallo,
Aber warum greifst du nun auf den unzuverlässigen tbody zu?
Dadurch spuckt Fx hier nur noch „Fehler: mytbody has no properties“ aus, es existiert also kein tbody-Element.
Dann mach halt eins rein in den HTML-Code ;-)).
Das ist übrigens auch die Fehlerquelle für FF.
Folgendes funktioniert mit
Content-Type: text/xml
und
Content-Type: application/xhtml+xml:
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<title>deleteRow</title>
<style type="text/css">
* {
margin:0;
padding:0;
}
html,
body {
height:100%;
}
</style>
<script type="text/javascript">
/*<![CDATA[*/
window.onload = function () {
var mytable = document.getElementsByTagName("table")[0];
var myrows = mytable.getElementsByTagName("tr");
for (var i = myrows.length-1; i > -1; i--) {
mytable.deleteRow(i);
}
}
/*]]>*/
</script>
</head>
<body>
<table>
<tbody>
<tr><td>Cell 1</td></tr>
<tr><td>Cell 2</td></tr>
<tr><td>Cell 3</td></tr>
<tr><td>Cell 4</td></tr>
<tr><td>Cell 5</td></tr>
<tr><td>Cell 6</td></tr>
<tr><td>Cell 7</td></tr>
</tbody>
</table>
</body>
</html>
Nimm das TBODY-Element raus und Der FF produziert den
Fehler: uncaught exception: [Exception... "Index or size is negative or greater than the allowed amount" code: "1" nsresult: "0x80530001 (NS_ERROR_DOM_INDEX_SIZE_ERR)" location: "http://localhost/test.xht Line: 25"]
Das _ist_ ein Bug, weil laut XHTML 1.0 DTD das TABLE-Element TBODY _oder_ TR enthalten darf. Mindestens eins davon _muss_ sein, aber TBODY _muss_ eben nicht sein.
viele Grüße
Axel