Hallo,
wie ich es jetzt sehe, ist
<table name="TABLE_2" ...>
~~~ nicht valide. Deswegen ergibt
~~~javascript
var tbl2=document.getElementsByName("TABLE_2");
alert("tbl2.length "+ tbl2.length); // length 0
~~~ ein leeres Array.
> 1. Wie müsste man es umbauen, wenn es weder Name-Attribut noch ID-Attribut gäbe?
man kommt nur über
~~~javascript
var tbls=document.getElementsByTagName("table");
var s="table-liste";
for (var i=0;i<tbls.length;i++) {
s+="\n"+i+"\t"+tbls[i].nodeName+"\t"+tbls[i].name;
}
alert(s);
var tbl=tbls[0]; // z.B.
~~~ an eine Liste. Dann nach einem Textknoten mit einem "sibling mit 'xyz'" zu suchen, ist auch machbar.
> 2. Darf man das <colgroup> Element überhaupt verwenden, wenn die Tabelle, wie in
> Melanies Beispiel, ein <tbody> hat (aber kein <thead>)?
ich habe colgroup vor tbody und auch in tbody eingehängt und keinen Unterschied in der Darstellung gefunden. K.A., was nun valide ist. Können thead und tbody unterschiedliche Spaltenstruktur haben? Dann brauchten beide eine eigene colgroup.
> 3. Wie könnte man automatsich die Anzahl der Spalten, also der <td>-Elemente im ersten <tr>
> ermitteln? Wenn ein 'colspan' vorkommt, wird's ja noch verrückter!
im einfachen Fall:
~~~javascript
var tds=tbl.rows[0].getElementsByTagName("td");
alert("Spaltenzahl: "+tds.length);
die colspan-Attribute der einzelnen Zellen zu beücksichtigen, scheint auch nicht kompliziert, aber falls noch CSS-Angaben ausgewertet werden müssen?
- Die wichtigste Frage wie immer zum Schluss: resultierenden HTML-Code ...
da finde ich diese Beispiel verblüffend. Alle nowrap-Attribute verschwunden
var tds=tbl.getElementsByTagName("td");
for (var i=0,td;td=tds[i];i++) {
td.noWrap=false;
}
alert(tbl.innerHTML);
Gruß plan_B
--
*®*´¯`·.¸¸.·
*®*´¯`·.¸¸.·