Jquery Objekte in Objektliteralen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Jquery Objekte in Objektliteralen

    Hi,

    warum bekomme ich in folgendem Beispiel immer ein undefined als Ausgabe?
    Wenn ich die Eigenschaft einfach mit einem String belege und ausgeben lasse, dann klappt es.
    Warum geht es nicht, wenn ich ein Objekt benutze?


    Code:
    var test = {
    
        eigenschaft : $("#liste img"),
        testfunktion : function(){
            alert(this.eigenschaft.attr('src')) // undefined??
        }
    
    }
    Zuletzt geändert von lx-club; 16.11.2010, 13:37.

  • #2
    $('#liste img') liefert dir vermutlich eine Liste. Prüfe das mal mit eigenschaft.length.

    Kommentar


    • #3
      Hi,

      Hab ich geprüft, aber dann erhalte ich 0.
      Wenn ich es etwas ändere, d.h. nur den String reinschreibe, funktioniert es. so wollte ich es aber eigenltich nicht machen. Ich möchte ja das Objekt in eine Variable speichern

      Code:
      var test = {
      
          eigenschaft : "#liste img",
          testfunktion : function(){
              alert($(this.eigenschaft).attr('src')) // funktioniert
          }
      
      }
      Zuletzt geändert von lx-club; 16.11.2010, 13:37.

      Kommentar


      • #4
        Hallo,

        das funktioniert? Dürfte es eigentlich nicht, weil du in beiden Fällen ein = verwendest. Objektliterale erlauben nur den Doppelpunkt. Bitte JavaScript nicht mit jQuery verwechseln.

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Hi,

          ja sorry, ich hab das = gegen den doppelpunkt ausgetauscht, aber leider funktioniert meine erste Variante immer noch nicht.

          Kommentar


          • #6
            Hi,

            ich habe es jetzt erstmal so gelöst:

            Code:
            var obj = {
                config : {
                    eigenschaft : "#container img";
                }
            
                init : function(){
                    this.eigenschaft = $(this.config.eigenschaft);
                }
            
                test : function(){
                    alert(this.eigenschaft.attr('src'));
                }
            }

            Kommentar


            • #7
              Zitat von lx-club Beitrag anzeigen
              Warum bekomme ich in folgendem Beispiel immer ein undefined als Ausgabe?
              Code:
              var test = {
              
                  eigenschaft : $("#liste img"),
              Liefert denn $ zu dem Zeitpunkt, wo die Variable test angelegt wird, überhaupt schon irgendwas ...?

              Wenn du das aufrufst, bevor überhaupt das DOM aufgebaut ist, dann ist ja wohl logisch, dass du an der Stelle nicht das bekommst, was du möchtest.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Hi,

                das DOM ist fertig geladen. Ich verwende dazu folgendes:

                Code:
                $(function(){
                 // Code
                })

                Kommentar

                Lädt...
                X