Wie kann ich alle Optionen einer Auswahl durch jQuery erhalten, indem Sie auf seine ID?
Ich suche nur die Werte, nicht den Text.
Wie kann ich alle Optionen einer Auswahl durch jQuery erhalten, indem Sie auf seine ID?
Ich suche nur die Werte, nicht den Text.
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>
$.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.
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
.
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.