Почти так же, как уже предлагалось, но немного по-другому. Примерно столько же кода, сколько jQuery в Vanilla JS :
selected = Array.prototype.filter.apply(
select.options, [
function(o) {
return o.selected;
}
]
);
Это , кажется, быстрее , чем цикл в IE, FF и Safari. Интересно, что в Chrome и Opera он работает медленнее.
Другой подход будет использовать селекторы:
selected = Array.prototype.map.apply(
select.querySelectorAll('option[selected="selected"]'),
[function (o) { return o.value; }]
);