Hallo!
Ich versuche auf das ID-Attribut im <a>-Tag zuzugreifen.
Mit folgendem Kontrukt kann ich im IE auf die <a>-Tags zugreifen.
--------------------------------------------------------------------
<html>
<head>
<script type="text/javascript">
<!--
function test() {
// -> i die Schleife habe ich mal entfernt
alert(document.getElementById("nav").firstChild.firstChild.childNodes[i].firstChild.firstChild.getAttribute("id"));
}
//-->
</script>
</head>
<body>
<div id="nav">
<table border="1" id="tabelle">
<tr id="td1">
<td id="td1"><a id="a1">1. Link</a></td>
</tr>
<tr id="tr2">
<td id="td2"><a id="a2">2. Link</a></td>
</tr>
<tr id="tr3">
<td id="td3"><a id="a3">3. Link</a></td>
</tr>
</table>
</div>
<a href="javascript:test()">test</a>
</body>
</html>
-------------------------------------------------------------------
Weil es in Netscape 6/7 nicht funktioniert, wollte ich mal der Sache auf den Grund gehen und versuchen, mich mal durch zu hangelt, also mir Kind für Kind ausgeben zu lassen.
Mit "document.getElementById("nav").firstChild.nodeName;" wird mir im IE "TABLE" angezeigt. Im Netscape bekomme ich aber "#text" angezeigt.
Nach lagen rum testen habe ich den Zeilenumbruch nach dem <div> entfernt:
<div id="nav"><table border="1" id="tabelle">
Schwupps liefert mit Netscape 7 "TABLE". Ähhhmmm was ist da los? Als noch die anderen Zeilenumbrüche entfernt habe, konnte ich mich witer durch hangeln und ich bekamm auch keine Fehlermeldungen mehr.
Und warum bekomme ich "TBODY" mit "document.getElementById("nav").firstChild.firstChild.nodeName;" geliefert? Ist das virtuell defaultmäßig vorhanden?
Noch nee Frage, kann man "document.getElementById("nav").firstChild.firstChild.childNodes[i].firstChild.firstChild.getAttribute("id")" kürzer schreiben?
MfG, André Laugks
L-Andre @ gmx.de