Kai345: Zeilennummer einer Tabelle abfragen

Beitrag lesen

[latex]Mae  govannen![/latex]

<table>
  <tr>
    <td></td>
    <td></td>
  </tr>
  <tr id="wievielte_zeile_ist_das">
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
  </tr>
</table>


>   
> Anfangs vermutete ich, dass es mithilfe der ID ein leichtes ist die Zeilennummer ausgeben zu lassen, leider wurde ich eines besseren belehrt. Ich habe alle möglichen Konstellationen ausprobiert aber nichts hat das erwünschte Ergebnis (in diesem Fall 2) gebracht.  
>   
> Ist das was ich vorhabe überhaupt möglich? ... oder befinde ich mich auf dem Holzweg?  
  
vermutlich (Ich habe in Sachen Javascript mit Tabellen nicht so viel gemacht; daher kann es eine einfachere Lösung geben) das Element holen, dann in einer Schleife per parentNode und Vergleich von nodeName bis zum Table-Element hochhangeln (ich würde mich hier nicht auf das augenscheinlich richtige  
`document.getElementById("wievielte_zeile_ist_das").parentNode`{:.language-javascript}  
verlassen, auch wenn das table-Element direkter Vorfahre zu sein scheint, manchmal wird implizit ein tbody eingefügt)  
  
Dann die Tabellenzeilen  (.rows) durchiterieren und jeweils vergleichen  
  
also quasi so:  
  
~~~javascript
var row = document.getElementById("wievielte_zeile_ist_das");  
if (row) {  
    var el = row.parentNode;  
    // Test auf document.body verhindert Endlosschleife, wenn table nicht gefunden wird  
    while (el.nodeName.toLowerCase() !== 'table' && el !== document.body) {  
        el = el.parentNode;  
    }  
    if (el.nodeName.toLowerCase() === 'table') {  
        var rows = el.rows;  
        for (var i = 0, l = rows.length; i < l; i += 1) {  
            if (rows[i] === row) {  
                alert("Es ist die " + (i+1) + ". Tabellenzeile");  
                break;  
            }  
        }  
    }  
}

Das sollte eigentlich auch bei etwas älteren Browsern funktionieren. In IE 5.5 + IE 6 standalone funktioniert es jedenfalls.

Cü,

Kai

--
Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken in Richtung "Mess up the Web". (suit)
Foren-Stylesheet Site Selfzeug JS-Lookup
SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?