KeinBalse: Element is Null / Nicht gefunden

Hallo

Ich habe folgenden Code

  
document.filter_book[0].checked = true;  
	alert(document.getElementById('filter_checkbox_music').checked);  
  

  
<form class="filter" name="filter">  
<input name="filter_music" id="filter_checkbox_music"value="" type="checkbox"><label title="">Musik</label>  
</form>  

Ich bekomme immer eine Fehlermeldung:
document.filter_book is undefined

oder
document.getElementById('filter_checkbox_music') is null

Was ist falsch?

Thx

  1. hallo

    [code lang=javascript]
    document.filter_book[0].checked = true;
    alert(document.getElementById('filter_checkbox_music').checked);

    am Syntaxhighlighting sieht man schon, was in der ersten Zeile falsch ist.
    Befasse dich mal ein wenig mit der Objektreferenz zu document.

    http://de.selfhtml.org/javascript/objekte/document.htm

    Ich bekomme immer eine Fehlermeldung:
    document.filter_book is undefined

    das bedeutet, dass es das nicht gibt, es ist *undefiniert*

    --
    "Sir! We are surrounded!" - "Excellent! We can attack in any direction!"
    1. Kannst du mir bitte ein Tipp geben?

      alert(document.getElementById('filter_checkbox_music').checked);

      -> Hier sollte noch True oder False kommen, oder nicht? Meiner Meinung nach Stimmt die Syntax.

      Mein Input Element ist:
      <input name="filter_book" id="filter_checkbox_book"  value="" type="checkbox">

      Vielen Dank und Gruss

      1. Kannst du mir bitte ein Tipp geben?

        alert(document.getElementById('filter_checkbox_music').checked);

        -> Hier sollte noch True oder False kommen, oder nicht?

        Wenn du diesen Code aufrufst, wenn es das Element gibt ja.

        Struppi.

        1. Ex kommt immer document.getElementById('filter_checkbox_music') is null.

          Das Element existiert aber, warum kommt dann nicht True oder false?

          thx vielmals

          1. Hallo KeinBalse,

            wann greifst du auf das Element zu? Beim Laden der Seite, z.B. durch ein Script im Header, oder danach, in einer Funktion, die onclick, onload, ... aufgerufen wird?

            Gruß, Jürgen

            1. Per Aufruf eines JS Scripts auf der Seite, also ohne Onload.

              Der Code steht zudem nicht im Header (sollte kein Problem sein, oder?)

              <script language="javascript">
              alert(document.filtergetElementById('filter_checkbox_book').checked);
              </script>

              1. Per Aufruf eines JS Scripts auf der Seite, also ohne Onload.

                Der Code steht zudem nicht im Header (sollte kein Problem sein, oder?)

                Doch weil im Header das Element nicht existiert.

                (übrigens ist das language Attribut veraltet, schau mal nach wie man JS Code einbindet)

                Struppi.

                1. Vielen Dank. Mann bin ich blöde....ist ja klar das ich nicht etwas ansprechen kann wenn es erst danach erstellt wird....

                  Wird onLoad demzufolge erst ausgeführt, wenn die ganze Seite (also Inhalt vom Body Tag) geladen ist?

                  Vielen Dank...habt mir sehr geholfen (ärger äger :) )

                  1. Mahlzeit KeinBlase,

                    Wird onLoad demzufolge erst ausgeführt, wenn die ganze Seite (also Inhalt vom Body Tag) geladen ist?

                    Erstaunlich, da das ja aufgrund des Namens gar nicht zu vermuten war ... ;-)

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                  2. Vielen Dank. Mann bin ich blöde....ist ja klar das ich nicht etwas ansprechen kann wenn es erst danach erstellt wird....

                    Ja, du kannst es aber ansprechen nach dem erstellt wurde. Ein JS muss nicht in den header.

                    Wird onLoad demzufolge erst ausgeführt, wenn die ganze Seite (also Inhalt vom Body Tag) geladen ist?

                    und alle sonstigen Inhalte (Bilder, externe CSS und Js Quellen), der Event heißt aber onload (in JS ist die Schreibweise wichtig)

                    Struppi.

                  3. Lieber KeinBlase,

                    Wird onLoad demzufolge erst ausgeführt, wenn die ganze Seite (also Inhalt vom Body Tag) geladen ist?

                    falls ich mich nicht irre - jein. Nicht nur der Inhalt des <body>-Elementes, sondern auch alle anderen eingebundenen Resourcen (ausgelagerte Script- oder CSS-Dateien, Bilder etc.) müssen meines Wissens fertig geladen (sprich: im Cache vorhanden!) sein, damit das onload-Event feuert.

                    Beachte auch den Unterschied zwischen onLoad und onload, beachte auch den Unterschied zwischen <body onLoad=""> bzw. <body onload=""> und window.onLoad bzw. window.onload! Das ist nicht (immer) dasselbe!

                    Liebe Grüße,

                    Felix Riesterer.

                    --
                    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
              2. Hallo KeinBalse,

                wo steht denn der Code? Vor oder hinter dem Element? Offensichtlich versuchst du auf ein Element zuzugreifen, das zu diesem Zeitpunkt noch nicht existiert.

                Bevor das jetzt zu einer Raterunde wird, zeig mal den auf den Fehler reduzierten Code oder stell das Beispiel online und poste einen Link.

                Gruß, Jürgen

          2. Das Element existiert aber, warum kommt dann nicht True oder false?

            Weil das Element zu dem Zeitpunkt, wo du die Funktion aufrufst, noch nicht existiert.

            Struppi.