Jutta: Variable wird Funktion nicht übergeben?

Hallo,

ich habe ein Problem mit der Funktions-Übergabe kann mir jemand sagen wieso mir meine Variable nicht übergeben wird?

Ich wollte dann mit alert ausprobieren welche Variablen übergeben werden weil gar nichts ankommt!?

Und die Fehlerbehandlung mit alert habe ich 1-zu-1 aus Teamone übernommen, was aber auch nicht funktioniert.

alert(document.getElementById(txt).style); // http://de.selfhtml.org/javascript/objekte/htmlelemente.htm

[...]

function ChangeText(txt,text)
   {

if(aktiveZeile)
    {
    document.getElementById(aktiveZeile).style.backgroundColor='#cccccc';
    }

document.txt.aktiveZeile=txt.id;
   alert(document.getElementById(txt).style);  // http://de.selfhtml.org/javascript/objekte/htmlelemente.htm

alert(text);

ChangeTxt(text);
   document.txt.style.color='black';

}

</script>

<table>
   <tr style="background: #cccccc;"
    onmouseover="this.style.cursor='hand' ; this.style.backgroundColor='green' ; status='over 1'"
    onmouseout="ChangeCol(this)  ; status=''"

onclick="ChangeText(this,'text1');"
    id="tab1">

<td>
   1111
   </td>
   </tr>
   </table>

<table>
   <tr style="background: #cccccc"
    onmouseover="this.style.cursor='hand' ; this.style.backgroundColor='green' ; status='over 2'"
    onmouseout="ChangeCol(this)  ; status=''"

onclick="ChangeText(txt2,'text2');"
    id="tab2">

<td>
   2222
   </td>
   </tr>
   </table>

[...]

Gruß Jutta

  1. Hi,

    ich glaube, daß da kein alert ausgegeben wird, liegt an anderen Syntax-Fehlern in dem Script, nach denen die weitere Bearbeitung abgebrochen wird.

    Du verwechselst - glaube ich - in dem Script den Unterschied zwischen der DomId und der Instanz eines Objekts.

    <script type="text/javascript">

    function ChangeTextById(domId,text)
       {

    domObject =  document.getElementById(domId);

    if (domObject != null)
      domObject.innerHTML = text;
     else
      alert ("Konnte Dom-Objekt mit der ID " + domId +" nicht finden ");

    }

    function ChangeTextByObject(domObject,text)
       {

    domObject.innerHTML = text;

    }

    </script>

    <table>
       <tr onclick="ChangeTextById('tab1','text1');">
       <td id="tab1">
       1111
       </td>
       </tr>
       <tr>
       <td id="tab1" onclick="ChangeTextByObject(this, 'text2');">
       2222
       </td>
       </tr>
       </table>

    Um den Unterschied zu verdeutlichen, hab ich das mal in zwei Funktionen verpackt: ChangeTextById erwartet die domID des Objekts, dessen Text geändert werden soll. Die Funktion bezieht danach dieses Objekt via getElementById und setzt den neuen Text durch Zugriff auf die Eigenschaft innerHTML.

    ChangeTextByObject nimmt dagegen die eigentliche Objekt-Instanz entgegen und setzt den neuen Text.

    Gruß, Lirpa

    1. Wups, da gehört kein id="tab1" mehr rein....

      statt

      <td id="tab1" onclick="ChangeTextByObject(this, 'text2');">

      also

      <td onclick="ChangeTextByObject(this, 'text2');">

    2. Hallo!

      es stimmt ich habe alles in einen Eimer geschmissen.
      Ich denke es wird besser sein wenn ich entweder nur mit domId oder mit Instanzen arbeite. Ich habe gedachte man müsste beide benutzen so habe ich es zumindestens gestern verstanden...

      Aber jetzt verstehe es auch, ich denke ich werde noch mal von ganz vorne Anfangen somit laufe ich nicht die Gefahr alte Fehler erneut zu benutzen.

      Eine Frage habe ich aber noch ich Rufe die Funktion ChangeTextById(domId,text) auf und möchte mit alert text1, text2 oder text3 ausgeben. Wenn ich das mit der folgenden Funktion mache funktioniert das leider nicht?

      function ChangeTextById(domId,text)
         {
         alert(txt);
         }

      Wieso wird mir in dem Fall nicht die Variable Text übergeben?

      Vielleicht kann mir auch noch wer Tipps und Tricks geben mit welchen Editor ich am besten JavaScript Programmiere Dreamweaver ist nicht besonders dafür geeignet.

      Gruß Jutta

      1. Hi nochmal,

        function ChangeTextById(domId,text)
           {
           alert(txt);
           }

        Wieso wird mir in dem Fall nicht die Variable Text übergeben?

        Weil die Variable jetzt 'text' und nicht 'txt' heißt.

        Einen Editor zum Programmieren von JavaScripten kann ich Dir nicht empfehlen, wohl aber einen Browser zum Debuggen: Mozilla. Der bietet unter Tools->WebDevelopment eine JavaScript-Console mit recht aussagekräftigen Fehlermeldungen... erleichtert die Fehlersuche um einiges.

        Gruß Lirpa

        1. Achja wie doof von mir...

          Weil die Variable jetzt 'text' und nicht 'txt' heißt.

          Einen Editor zum Programmieren von JavaScripten kann ich Dir nicht empfehlen, wohl aber einen Browser zum Debuggen: Mozilla. Der bietet unter Tools->WebDevelopment eine JavaScript-Console mit recht aussagekräftigen Fehlermeldungen... erleichtert die Fehlersuche um einiges.

          Ja genau es geht mir viel mehr darum um das Debuggen... Die Fehler Angabe im Browser IE hilft mir gar nicht weiter...

          Danke trotzdem!

  2. gruss Jutta,

    bitte bleibe in Deinem gestern eroeffneten thread:
       [pref:t=83623&m=488849]

    an wahsagas vorletztes posting laesst sich gut anknuepfen:
       [pref:t=83623&m=489091]

    vielen Dank - peterS. - pseliger@gmx.net

    --
    sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)
    1. hi jutta,

      das ist schon der dritte thread, den du zum gleichen problem eröffnet hast.
      angefangen hats ja hier:
      [pref:t=83505&m=488055]

      in zukunft vielleicht mal etwas sparsamer mit der eröffnung von threads umgehen !

      gruß
      peter