Vanilla javascript
Using plain old JavaScript:
var val = "Fish"; var sel = document.getElementById('sel'); document.getElementById('btn').onclick = function() { var opts = sel.options; for (var opt, j = 0; opt = opts[j]; j++) { if (opt.value == val) { sel.selectedIndex = j; break; } } }
<select id="sel"> <option>Cat</option> <option>Dog</option> <option>Fish</option> </select> <button id="btn">Select Fish</button>
JQuery
But if you really want to use jQuery:
var val = 'Fish'; $('#btn').on('click', function() { $('#sel').val(val); });
var val = 'Fish'; $('#btn').on('click', function() { $('#sel').val(val); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <select id="sel"> <option>Cat</option> <option>Dog</option> <option>Fish</option> </select> <button id="btn">Select Fish</button>
jQuery - Using value attributes
If your parameters have value attributes that are different from their text content, and you want to select via text content:
<select id="sel"> <option value="1">Cat</option> <option value="2">Dog</option> <option value="3">Fish</option> </select> <script> var val = 'Fish'; $('#sel option:contains(' + val + ')').prop({selected: true}); </script>
But if you have the above setting and you want to select by value using jQuery, you can do this:
var val = 3; $('#sel').val(val);
Modern DOM
For browsers that support document.querySelector and HTMLOptionElement::selected , this is a more concise way to accomplish this task:
var val = 3; document.querySelector('#sel [value="' + val + '"]').selected = true;
<select data-bind="value: val"> <option value="1">Cat</option> <option value="2">Dog</option> <option value="3">Fish</option> </select> <script> var viewModel = { val: ko.observable() }; ko.applyBindings(viewModel); viewModel.val(3); </script>
<template id="template" is="dom-bind"> <select value="{{ val }}"> <option value="1">Cat</option> <option value="2">Dog</option> <option value="3">Fish</option> </select> </template> <script> template.val = 3; </script>
Note: this has not been updated for the final stable version.
<app id="app"> <select [value]="val"> <option value="1">Cat</option> <option value="2">Dog</option> <option value="3">Fish</option> </select> </app> <script> var App = ng.Component({selector: 'app'}) .View({template: app.innerHTML}) .Class({constructor: function() {}}); ng.bootstrap(App).then(function(app) { app._hostComponent.instance.val = 3; }); </script>
<div id="app"> <select v-model="val"> <option value="1">Cat</option> <option value="2">Dog</option> <option value="3">Fish</option> </select> </div> <script> var app = new Vue({ el: '#app', data: { val: null, }, mounted: function() { this.val = 3; } }); </script>
kzh Sep 10 2018-11-11T00: 00Z
source share