474 Stimmen

Wie man alle Optionen einer Auswahl mit jQuery erhalten?

Wie kann ich alle Optionen einer Auswahl durch jQuery erhalten, indem Sie auf seine ID?

Ich suche nur die Werte, nicht den Text.

687voto

ybo Punkte 16629

Verwendung:

$("#id option").each(function()
{
    // Add $(this).val() to your list
});

.each() | jQuery API Dokumentation

194voto

KooiInc Punkte 111454

Ich kenne jQuery nicht, aber ich weiß, dass das Select-Element ein "Options"-Objekt enthält, wenn Sie es aufrufen.

var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option

Eine 12 Jahre alte Antwort. Wir sollten sie ein wenig modernisieren:

console.log( [...document.querySelector("#demo").options].map( opt => opt.value ) );

<select id="demo">
  <option value="Belgium">Belgium</option>
  <option value="Botswana">Botswana</option>
  <option value="Burkina Faso">Burkina Faso</option>
  <option value="Burundi">Burundi</option>
  <option value="China">China</option>
  <option value="France">France</option>
  <option value="Germany">Germany</option>
  <option value="India">India</option>
  <option value="Japan">Japan</option>
  <option value="Malaysia">Malaysia</option>
  <option value="Mali">Mali</option>
  <option value="Namibia">Namibia</option>
  <option value="Netherlands">Netherlands</option>
  <option value="North Korea">North Korea</option>
  <option value="South Korea">South Korea</option>
  <option value="Spain">Spain</option>
  <option value="Sweden">Sweden</option>
  <option value="Uzbekistan">Uzbekistan</option>
  <option value="Zimbabwe">Zimbabwe</option>
</select>

166voto

PCasagrande Punkte 5062

$.map ist wahrscheinlich der effizienteste Weg, dies zu tun.

var options = $('#selectBox option');

var values = $.map(options ,function(option) {
    return option.value;
});

Sie können Änderungsoptionen hinzufügen zu $('#selectBox option:selected') wenn Sie nur die markierten Einträge haben wollen.

Die erste Zeile wählt alle Kontrollkästchen aus und setzt ihr jQuery-Element in eine Variable. Dann verwenden wir die .map Funktion von jQuery, um eine Funktion auf jedes der Elemente dieser Variablen anzuwenden; alles, was wir tun, ist, den Wert jedes Elements zurückzugeben, denn das ist alles, was uns interessiert. Da wir sie innerhalb der map-Funktion zurückgeben, wird tatsächlich ein Array der Werte wie gewünscht erstellt.

81voto

cic Punkte 7048

Einige Antworten verwenden each aber map ist hier IMHO eine bessere Alternative:

$("select#example option").map(function() {return $(this).val();}).get();

Es gibt (mindestens) zwei map Funktionen in jQuery. Die Antwort von Thomas Petersen verwendet "Utilities/jQuery.map"; diese Antwort verwendet "Traversing/map" (und damit etwas saubereren Code).

Das hängt davon ab, was Sie mit den Werten machen wollen. Wenn Sie, sagen wir mal, die Werte aus einer Funktion zurückgeben wollen, map ist wahrscheinlich die bessere Alternative. Aber wenn Sie die Werte direkt verwenden wollen, sollten Sie wahrscheinlich each .

65voto

Raibaz Punkte 8305
$('select#id').find('option').each(function() {
    alert($(this).val());
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X