Tina: Rekursiver Aufruf und Rückgabe von Werten

Beitrag lesen

Hallo zusammen,

ich habe folgenden Javascript Code:

function determineRoot(element)
{
        if(element.parentNode.id=='test'))
 {
  return  element.parentNode;
 }
 else
 {
  determineRoot(element.parentNode);
 }
}

Dieser Funktion wird ein HTML-Element übergeben. Sie prüft dann, ob das Elternelement die ID "test" hat. Falls ja, wird das Elternelement zurück gegeben, falls nein wird die Funktion nochmal aufgerufen und das Elternelement übergeben (rekursiv).

Allerdings ist es so, dass ich nie mein gewünschtes HTML Element mit der ID "test" zurück erhalte, da nachdem das gewünschte element zurück gegeben wird, dieses durch die returns der restlichen Rekursionen überschrieben wird (undefined).

Als Lösung könnte ich nun eine globale Variable außerhalb der Funktion definieren und diese zurück geben.

Das würde dann so aussehen:

var myRoot;
function determineRoot(element)
{
        if(element.parentNode.id=='test'))
 {
  myRoot = element.parentNode;
 }
 else
 {
  determineRoot(element.parentNode);
 }
 return myRoot;
}
Ich mag aber globale Variablen nicht so gern. Außerdem wird myRoot dann öfters zurückgegeben (je nach Anzahl der Rekursionen)

Gibt es für diese Aufgabenstellung auch einen anderen Lösungsweg?

Danke im Voraus
Liebe Grüße
Tina