Ich habe mich gefragt, ob es möglich ist, jQuery zur Auswahl eines <option>
, sagen Sie das 4. Element in einer Dropdown-Box?
<select>
<option></option>
<option></option>
<option></option>
<option></option>
<option></option>
</select>
Ich möchte, dass der Benutzer auf einen Link klickt und dann das <select>
ändern Sie den Wert, als hätte der Benutzer ihn ausgewählt, indem Sie auf <option>
.
Wie wäre es mit
$('select>option:eq(3)').attr('selected', true);
beispiel unter http://www.jsfiddle.net/gaby/CWvwn/
für moderne jquery-Versionen sollten Sie .prop()
anstelle von .attr()
verwenden.
$('select>option:eq(3)').prop('selected', true);
beispiel unter http://jsfiddle.net/gaby/CWvwn/1763/
Die Lösung:
$("#element-id").val('the value of the option');
HTML-Auswahlelemente haben eine selectedIndex
-Eigenschaft, in die geschrieben werden kann, um eine bestimmte Option auszuwählen:
$('select').prop('selectedIndex', 3); // select 4th option
Mit einfachem JavaScript kann dies erreicht werden durch:
// use first select element
var el = document.getElementsByTagName('select')[0];
// assuming el is not null, select 4th option
el.selectedIndex = 3;
Der einfachste Weg ist val(value)
function:
$('select').val(2);
Und um den ausgewählten Wert zu erhalten, geben Sie keine Argumente an:
$('select').val();
Außerdem können Sie mit <option value="valueToSelect">...</option>
Folgendes tun:
$('select').val("valueToSelect");
Ich würde es so machen
$("#idElement").val('optionValue').trigger('change');
wenn Ihre Optionen einen Wert haben, können Sie dies tun:
$('select').val("the-value-of-the-option-you-want-to-select");
'select' ist die ID Ihrer Auswahl oder eines Klassenselektors. Wenn es nur eine Auswahl gibt, können Sie das Tag wie im Beispiel verwenden.
Verwenden Sie den folgenden Code, wenn Sie eine Option mit einem bestimmten Wert auswählen möchten:
$('select>option[value="' + value + '"]').prop('selected', true);
Try with the below codes. All should work.
$('select').val(2);
$('select').prop('selectedIndex', 1);
$('select>option[value="5"]').prop('selected', true);
$('select>option:eq(3)').attr('selected', 'selected');
$("select option:contains(COMMERCIAL)").attr('selected', true);
Versuche dies:
$('#mySelectElement option')[0].selected = true;
Grüße!
Bei '' Elementen verwenden wir normalerweise das Attribut 'value'. Dies erleichtert das Einstellen von:
$('select').val('option-value');
Ich bevorzuge nth-child () gegenüber eq (), da es 1-basierte Indexierung anstelle von 0-basierten verwendet, was für mein Gehirn etwas einfacher ist.
//selects the 2nd option
$('select>option:nth-child(2)').attr('selected', true);
antworte mit id:
$('#selectBoxId').find('option:eq(0)').attr('selected', true);
$('select>option:eq(3)').attr('selected', 'selected');
Eine Einschränkung hierbei ist, dass Sie, wenn Sie JavaScript für das Änderungsereignis von select/option verwenden, .trigger('change')
hinzufügen müssen, damit der Code erstellt wird.
$('select>option:eq(3)').attr('selected', 'selected').trigger('change');
weil nur der Aufruf von .attr('selected', 'selected')
das Ereignis nicht auslöst