Jean Pascal: Allererste Schritte mit Javascript

Hallo,

ich entschuldige mich schonmal vorab, dass es für die meisten hier Kinderkram ist, aber ich scheitere gerade an folgendem:

function swap(){
var a = a.getElementByTagName("div");
alert(a)
}

Wenn ich die Funktion mit onclick in einem a aufrufe passiert leider garnichts. Interessant finde ich auch, dass selbst dann nichts passiert, wenn ich schreibe alert("test"). Sobald die erste Zeile hinzukommt, wird alles lahmgelegt.

Ich würde mich freuen, wenn mir jemand erklärte warum.

Danke.

Jean

  1. function swap(){
    var a = a.getElementByTagName("div");
    alert(a)
    }

    hi,

    du hast das  -> ; <- vergessen. also: alert(a);

    mfg dennisb

    1. Hi Dennis,

      danke für den Hinweis, die Ursache ist das allerdings nicht.

      Gruß Jean

      1. hi, bitte.
        aber was möchtest du genau bezwecken?

        dennisb

        1. Hi Dennis,

          ich hätte dazuschreiben sollen, dass die Zeile aus dem Kontext gerissen ist. Das ganze soll insgesamt schon etwas umfangreicher sein, aber damit wollte ich niemanden belästigen. Das a vor getElement... steht für einen Bereich, den ich vorher innerhalb des Dokuments definiert habe. Dass die Variable dann auch a heißt, war nicht beabsichtigt.

          Grüße Jean

    2. Hi,

      du hast das  -> ; <- vergessen. also: alert(a);

      jeder brauchbare Styleguide wird Dir die Verwendung zwar empfehlen. Falsch ist es aber nicht, den Befehlstrenner am Ende einer Zeile wegzulassen - das Zeilenende selbst trennt ebenfalls. Nun ja, sofern der Kontext es zulässt ;-)

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
  2. Moin!

    Ich würde mich freuen, wenn mir jemand erklärte warum.

    Lade dir den Firefox herunter, öffne dessen Javascriupt-Konsole, und lies die Fehlermeldung, die erscheint.

    Korrigiere dann dein getElementByTagName entsprechend.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hallo Sven,

      danke für den Tipp, ich wusste garnicht, dass es diese Konsole gibt. Hat der neue IE sowas eigentlich auch? ;-) Naja, ohne Web Developer Toolbar bleibe ich sowieso bei FF.

      Gruß Jean

  3. Moin,

    var a = a.getElementByTagName("div");

    diese Zeile ist, so wie sie dasteht, Unsinn.
    Du deklarierst damit eine neue Variable a und willst "gleichzeitig" eine Methode getElementByTagName() aufrufen, die diese Variable haben soll. Hat sie natürlich nicht, wovon auch?
    Ich nehme an, du hast eigentlich document.getElementsByTagName() gemeint; beachte auch das Plural-s bei "Elements". Das Ergebnis dieser Funktion ist ein Array, das alle div-Elemente deines Dokuments enthält.

    alert(a)

    Da hat dennisb schon angemerkt, dass das Semikolon fehlt - das ist aber kein Fehler, sondern in Javascript durchaus erlaubt. Wegen der Gewohnheit aus anderen ähnlichen Sprachen (PHP, C) wäre es aber nett, das Semikolon "der Form halber" trotzdem zu schreiben.

    Wenn ich die Funktion mit onclick in einem a aufrufe passiert leider garnichts.

    Doch: Du bekommst eine Fehlermeldung in der Zeile, die ich dir oben erläutert habe.

    Interessant finde ich auch, dass selbst dann nichts passiert, wenn ich schreibe alert("test").

    Richtig, so weit kommt dein Script gar nicht, da es vorher wegen des Fehlers abbricht.

    So long,
     Martin

    --
    You say, it cannot be love if it isn't for ever.
    But let me tell you: Sometimes, a single scene can be more to remember than the whole play.
    1. moin martin,

      stimmt, Element-> s <-.
      habe ich wohl übersehen....

        
      <script type="text/javascript">  
        
      function swap()  
       {  
        a=document.getElementsByTagName("div")[0];  
        a.style.fontSize="200%";  
        alert(a);  
       }  
        
        
      </script>  
      
      
        
      <div><p>ein div</p></div>  
      <input type="button" onclick="swap()" value="klicken" />  
      
      
      1. Ein schönes Beispiel.

        Danke.

    2. Hi Martin,

      danke für die Hilfe. Stimmt, das Semikolon gewöhnt man sich schwer ab. Ich neige auch gerne mal zu $-Zeichen. Aber vergessen tut man sie leider trotzdem manchmal.

      Die Fehlermeldung bekomme ich nicht, weil ich keinen Debugger oder ähnliches verwendet habe.

      Stimmt, die Zeile macht so keinen Sinn, neben dem doppelten a, was natürlich ein Fehler meinerseits ist, habe ich die Zeile aus dem Kontext gezogen, weil ich niemanden mit meinem kompletten Code überfallen wollte.

      Gruß Jean

      1. Hi,

        danke für die Hilfe. Stimmt, das Semikolon gewöhnt man sich schwer ab.

        ich *möchte* es mir gar nicht abgewöhnen. ;-)

        Die Fehlermeldung bekomme ich nicht, weil ich keinen Debugger oder ähnliches verwendet habe.

        Welchen Browser benutzt du denn? Firefox und Opera haben eine Javascript-Konsole eingebaut, die solche Fehlermeldungen anzeigt, und der IE zeigt die Fehlermeldungen je nach Einstellung entweder automatisch als Popup-Fenster oder nach einem Doppelklick auf das gelbe Dreieck, das bei einem JS-Fehler links unten in der Statuszeile erscheint.
        Wobei aber die Fehlermeldungen des IE meistens schlecht verständlich und oft irreführend sind.

        Ciao,
         Martin

        --
        Butterkeksverteiler zu werden ist vermutlich eine der wenigen beruflichen Perspektiven, die sich noch bieten, wenn man einen an der Waffel hat.
          (wahsaga)
        1. Hi Martin,

          ich benutze FF, wusste aber von der Konsole nichts. Jetzt benutze ich sie und das ist wirklich *extrem* hilfreich. Ohne würde ich nächste Woche noch am Code sitzen.

          Danke nochmal.

          Gruß Jean