baeckerman83: JQuery class array -> einzelne Werte?

Hiho!
Ich suche mir mit Jquery alle DOM Elemente raus die eine bestimmte Klasse haben. Das ist dann ja in einem Array drin, in dem ich mit get oder [] auf die einzelnen Elemente zugreifen kann. Das geht auch und er gibt mir dann so etwas aus "[object HTMLSelectElement]". wenn ich da dann ein val() drauf mache kommt aber nur undefined.
An den Wert des erstes Elements komme ich mit
$(".cl_name").val();

Wenn ich
$(".cl_name").length; mache kommt auch 21 raus.

Bei zum Beispiel:
$(".cl_name") -> Ausgabe:[object HTMLSelectElement]
$(".cl_name").val() -> Ausgabe: 56 (Der Wert aus dem selectElement)
$(".cl_name").get(0) -> Ausgabe:[object HTMLSelectElement]
$(".cl_name").get(0).val() -> Ausgabe: undefined
$(".cl_name").get(8) -> Ausgabe:[object HTMLSelectElement]
$(".cl_name").get(8).val() -> Ausgabe: undefined

Was mache ich falsch?

  1. Hi,

    Was mache ich falsch?

    Du beschreibst uns dein Problem nicht nachvollziehbar.
    </hilfe/charta.htm#tipps-fuer-fragende>

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. jQuery-Objekte sind Wrapper-Listen, die die tatsächlichen nackten DOM-Elemente als Listeneinträge enthalten. jQuery erweitert diese DOM-Objekte nicht. Sämtliche jQuery-Methoden musst du immer über den jQuery-Wrapper aufrufen. Also: DOM-Elemente haben keine val-Methode, jQuery-Objekte haben eine solche.

    Beim Durchlaufen einer Liste kannst du z.B. immer wieder jQuery-Objekte erzeugen, indem du das DOM-Element mit $(el) einhüllst.

    Um z.B. einen Array mit allen Werten zu bekommen, kannst du map benutzen:

    var values = $('.foo').map(function () {  
      return $(this).val();  
    });
    

    this zeigt auf das DOM-Element, mit $(…) wird jeweils ein jQuery-Wrapper erzeugt und darauf val() aufgerufen. Bei each würde man ähnlich arbeiten.

    Du kannst eine Wrapper-Liste mit eq auf ein Element reduzieren und ggf. mit end dies wieder rückgängig machen.

    Mathias

    1. Danke! Das ist genau das was ich suchte, ich wusste nur nicht das ich es suche. Damit bekomme ich das alles super hin.

      1. Danke! Das ist genau das was ich suchte, ich wusste nur nicht das ich es suche. Damit bekomme ich das alles super hin.

        Vielleicht ist es nicht das was du suchst

        du möchtest doch nicht etwa einfach alle Elemente einer Collection abarbeiten? Dafür wäre each() die richtige Lösung.

        molilys Hinweis ist zwar fachlich richtig, aber ohne den Hintergrund deiner Frage zu kennen, lässt sich schwer sagen, ob es auch das ist, was du _wirklich_ suchst.