dynamische ID eines <div> herausfinden

Javascript Code
Code:
<div id="diewillichhaben">
<table>
	<tr>
		<th> text </th>
		<th onclick="tuwas(  id  );"> klickmich </th>
	</tr>
	<tr>
		<td> text </td>
	</tr>
</table>
</div>

Wenn das Wort "klickmich" angeklickt wird, soll eine javascript Funktion ausgeführt werden. Dieser soll ein Parameter übergeben werden und zwar die ID des <div> ganz oben. (Im Beispiel: ist die ID "diewillichhaben")
Nun ist diese ID aber nicht statisch sondern immer verschieden. Wie kann ich nun auf sie zugreifen?
Ich hab bis jetzt nur herausgefunden, wie man mit this auf das nächsthöhere Element zugreifen kann. Ich könnte also z.b. Attribute des <th> beinflussen, was mir aber nichts bringt.
Hat jemand eine Idee?
 
Du könntest eine Funktion aufrufen, die dann im DOM-Tree so lange nach oben wandert, bis sie zu einem DIV gelangt, und dann dessen ID zurückgibt.

Irgendwas in der Form (ungetestet):

Code:
function getContainerID ( element ) 
{
    if ( element.tagName == 'DIV' )
        return element.id;
    else
        return getContainerID ( element.parentNode );
}


...


<th onclick="tuwas ( getContainerID ( this ) );">...</th>
 
hallo erstmal,

es gibt verschiedene lösungen, um an die id zu kommen.
die erste:

document.getElementsByTagName('div')[0].id

die zweite:

this.parentElement.parentElement.parentElement.id

schau einfach mal auf SelfHTML
nach.
 
Leider funktionieren beide Beispiele von euch nicht. Auch Selfhtml hat mir nicht weitergeholfen. Und ich möchte auf keinen fall über document.all gehen, weil das z.B. bei Firefox nicht korrekt funktioniert. Dazu muss man sich nur mal die Beispiele bei Selfhtml ansehen. Die funktionieren mit Firefox nicht korrekt, mit Opera schon.
Sonst noch jemand eine Idee? Da die gesamte Tabelle und das <div> ausgegeben werden sollen - könnte man da das nicht irgentwie als Objekt darstellen? Also mit OOP? Ich kenn mich da leider nicht aus.
 
Mein Code funktioniert in FF und IE (und wüsste nicht, wieso in anderen Browsern nicht). Hab's eben getestet und die korrekten IDs zurückbekommen.

Poste doch sonst einfach mal'n Link zu einer Testseite, damit man anschauen kann, woran's scheitert.
 
Zurück
Oben